



; bank 0x02 of 16 starts at file address 0x008010
; code bytes:	$0A26 (15.86% of bytes in this ROM bank)
; data bytes:	$34C5 (82.45% of bytes in this ROM bank)
; pcm bytes:	$0000 (0.00% of bytes in this ROM bank)
; chr bytes:	$0000 (0.00% of bytes in this ROM bank)
; free bytes:	$00A3 (0.99% of bytes in this ROM bank)
; unknown bytes:	$0072 (0.70% of bytes in this ROM bank)
; $3EEB bytes last seen in RAM bank $8000 - $BFFF (100.00% of bytes seen in this ROM bank, 98.31% of bytes in this ROM bank):
;	$0A26 code bytes (16.13% of bytes seen in this RAM bank, 15.86% of bytes in this ROM bank)
;	$34C5 data bytes (83.87% of bytes seen in this RAM bank, 82.45% of bytes in this ROM bank)

; PRG Bank 0x02: town/dungeon maps, warp data, NPC data, code for building town/dungeon maps and moving NPCs around, most of the main script text engine, including its dictionary, some control code handlers, the main script pointers, and the main script overflow from bank 5

; [bank start] -> data
; -> $02:$B68F: handler for control code #$FD
; possible external indexed data load target (from $0F:$F3ED, $0F:$FF28)
; external indirect data load target (via $0F:$FBAB)
0x008010|$02:$8000:8F
; possible external indexed data load target (from $0F:$F3F2, $0F:$FF2D)
0x008011|$02:$8001:   B6	; $02:$B68F; handler for control code #$FD
; external indirect data load target (via $0F:$F78A)
0x008012|$02:$8002:41 B1	; $02:$B141
; -> $02:$B393: read the next string byte; preserves X and Y
; indirect data load target (via $BE03)
0x008014|$02:$8004:93 B3	; $02:$B393; read the next string byte; preserves X and Y
; -> $02:$B292: looks like this determines NPC's post-Malroth text
; external indirect data load target (via $0F:$D33F)
0x008016|$02:$8006:92 B2	; $02:$B292; looks like this determines NPC's post-Malroth text
0x008018|$02:$8008:0E B1	; $02:$B10E
; -> $02:$B677: CLC if end of word, SEC otherwise
; external indirect data load target (via $0F:$FB4D, $0F:$FB7D, $0F:$FBD9)
0x00801A|$02:$800A:77 B6	; $02:$B677; CLC if end of word, SEC otherwise
; external indirect data load target (via $0F:$FB9E, $0F:$FBA6, $0F:$FBB0)
0x00801C|$02:$800C:95 B6	; $02:$B695
; -> $02:$B687: if menu current column < #$16, CLC and RTS, otherwise do stuff
; external indirect data load target (via $0F:$FB61, $0F:$FD40)
0x00801E|$02:$800E:87 B6	; $02:$B687; if menu current column < #$16, CLC and RTS, otherwise do stuff
; external indirect data load target (via $0F:$FBA2)
0x008020|$02:$8010:10 B7	; $02:$B710
; -> $02:$B351: looks like more NPC data?
; indirect data load target (via $B1C3)
; external indirect data load target (via $0F:$E4EF, $0F:$E4FB)
0x008022|$02:$8012:51 B3	; $02:$B351; looks like more NPC data?
; -> $02:$BE00: read the next text token and interpolate any variable control codes; SEC to trigger read of [end-FA]-terminated string from $60F1, CLC to use A
; external indirect data load target (via $0F:$FBF7)
0x008024|$02:$8014:00 BE	; $02:$BE00; read the next text token and interpolate any variable control codes; SEC to trigger read of [end-FA]-terminated string from $60F1, CLC to use A
; -> $02:$BEBC: copy $6119,X to $60F1,X until we read a #$FA
; external indirect data load target (via $07:$87F4)
0x008026|$02:$8016:BC BE	; $02:$BEBC; copy $6119,X to $60F1,X until we read a #$FA
; map header info (exterior border tile ID, width, height, pointer low byte, pointer high byte, ?, ?, palette)
; external indirect data load target (via $0F:$E3FB)
; indirect data load target
0x008028|$02:$8018:01 17 17 89 8B 01 00 0D	; Map ID #$00: Fake Midenhall
0x008030|$02:$8020:04 FF FF 00 80 00 00 00	; Map ID #$01: World Map
0x008038|$02:$8028:20 09 09 40 88 00 00 0D	; Map ID #$02: Midenhall 2F
0x008040|$02:$8030:01 17 17 89 8B 01 00 0D	; Map ID #$03: Midenhall 1F
0x008048|$02:$8038:05 05 09 52 88 00 00 0D	; Map ID #$04: Midenhall B1
0x008050|$02:$8040:01 17 17 6A 88 01 00 0D	; Map ID #$05: Leftwyne
0x008058|$02:$8048:03 19 19 22 89 01 00 0D	; Map ID #$06: Cannock
0x008060|$02:$8050:06 17 17 CC 89 01 00 0D	; Map ID #$07: Hamlin
0x008068|$02:$8058:04 07 07 9A 8A 00 00 0D	; Map ID #$08: Hamlin Waterway
0x008070|$02:$8060:08 13 13 B6 8A 01 00 0D	; Map ID #$09: Moonbrooke
0x008078|$02:$8068:05 05 06 1F 8C 00 00 0D	; Map ID #$0A: Moonbrooke B1
0x008080|$02:$8070:01 19 19 38 8C 01 00 0D	; Map ID #$0B: Lianport
0x008088|$02:$8078:01 1D 13 17 8D 01 00 0D	; Map ID #$0C: Tantegel
0x008090|$02:$8080:20 07 07 08 8E 00 00 0D	; Map ID #$0D: Tantegel Town 2F
0x008098|$02:$8088:20 07 07 1C 8E 00 00 0D	; Map ID #$0E: Tantegel Castle 2F
0x0080A0|$02:$8090:01 17 17 2B 8E 01 00 0D	; Map ID #$0F: Osterfair
0x0080A8|$02:$8098:01 17 17 04 8F 01 00 0D	; Map ID #$10: Zahan
0x0080B0|$02:$80A0:03 13 1F BF 8F 01 00 0D	; Map ID #$11: Tuhn
0x0080B8|$02:$80A8:02 05 05 65 90 00 00 0D	; Map ID #$12: Tuhn Watergate
0x0080C0|$02:$80B0:06 09 09 74 90 01 00 0D	; Map ID #$13: Wellgarth
0x0080C8|$02:$80B8:05 17 18 9B 90 01 00 0D	; Map ID #$14: Wellgarth Underground
0x0080D0|$02:$80C0:03 19 19 68 91 01 00 0D	; Map ID #$15: Beran
0x0080D8|$02:$80C8:08 19 19 3B 92 01 00 0D	; Map ID #$16: Hargon's Castle 1F
0x0080E0|$02:$80D0:21 0F 0D F9 92 00 00 0D	; Map ID #$17: Hargon's Castle 7F
0x0080E8|$02:$80D8:04 13 13 A3 94 00 00 0D	; Map ID #$18: Charlock Castle B8
0x0080F0|$02:$80E0:05 09 09 2D 93 00 00 0D	; Map ID #$19: Shrine NW of Midenhall
0x0080F8|$02:$80E8:06 07 0B 4C 93 01 00 0D	; Map ID #$1A: Shrine SW of Cannock
0x008100|$02:$80F0:24 05 05 90 94 01 00 0D	; Map ID #$1B: Shrine NW of Lianport
0x008108|$02:$80F8:05 07 07 78 93 00 00 0D	; Map ID #$1C: Shrine SE of Rimuldar
0x008110|$02:$8100:03 09 05 8F 93 00 00 0D	; Map ID #$1D: Shrine NW of Beran
0x008118|$02:$8108:01 09 05 A8 93 00 00 0D	; Map ID #$1E: Shrine NW of Zahan
0x008120|$02:$8110:03 07 07 C1 93 00 00 0D	; Map ID #$1F: Rhone Shrine
0x008128|$02:$8118:05 07 05 E5 93 01 00 0D	; Map ID #$20: Shrine SW of Moonbrooke
0x008130|$02:$8120:08 07 07 07 94 01 00 0D	; Map ID #$21: Rhone Cave Shrine
0x008138|$02:$8128:02 09 05 23 94 01 00 0D	; Map ID #$22: Shrine S of Midenhall
0x008140|$02:$8130:04 03 03 40 94 00 00 0D	; Map ID #$23: Rubiss' Shrine B1
0x008148|$02:$8138:04 01 01 4B 94 00 00 0D	; Map ID #$24: Rubiss' Shrine B2
0x008150|$02:$8140:04 01 01 53 94 00 00 0D	; Map ID #$25: Rubiss' Shrine B3
0x008158|$02:$8148:04 01 01 5B 94 00 00 0D	; Map ID #$26: Rubiss' Shrine B4
0x008160|$02:$8150:04 01 01 63 94 00 00 0D	; Map ID #$27: Rubiss' Shrine B5
0x008168|$02:$8158:04 01 01 6B 94 00 00 0D	; Map ID #$28: Rubiss' Shrine B6
0x008170|$02:$8160:02 05 05 73 94 00 00 0D	; Map ID #$29: Rubiss' Shrine B7
0x008178|$02:$8168:05 01 01 86 94 01 00 0D	; Map ID #$2A: Shrine W of Zahan
0x008180|$02:$8170:24 05 15 9F 96 01 00 1A	; Map ID #$2B: Cave to Hamlin
0x008188|$02:$8178:24 0F 0F DA 95 01 00 34	; Map ID #$2C: Lake Cave B1
0x008190|$02:$8180:24 0D 0F 3B 96 01 00 34	; Map ID #$2D: Lake Cave B2
0x008198|$02:$8188:24 0D 0D BF 96 01 00 4E	; Map ID #$2E: Sea Cave B1
0x0081A0|$02:$8190:24 11 13 17 97 01 00 4E	; Map ID #$2F: Sea Cave B2
0x0081A8|$02:$8198:24 09 07 B4 97 01 00 4E	; Map ID #$30: Sea Cave B3-1
0x0081B0|$02:$81A0:24 0F 0F D9 97 01 00 4E	; Map ID #$31: Sea Cave B3-2
0x0081B8|$02:$81A8:24 11 11 81 87 01 00 4E	; Map ID #$32: Sea Cave B4
0x0081C0|$02:$81B0:24 0D 07 12 88 01 00 4E	; Map ID #$33: Sea Cave B5
0x0081C8|$02:$81B8:24 0D 0D D9 86 01 00 1A	; Map ID #$34: Charlock Castle B1/B2
0x0081D0|$02:$81C0:24 0B 0F 28 87 01 00 1A	; Map ID #$35: Charlock Castle B3/B4-1/B5-1
0x0081D8|$02:$81C8:24 0B 09 5B 87 01 00 1A	; Map ID #$36: Charlock Castle B4-2/B5-2/B6
0x0081E0|$02:$81D0:24 09 09 3F 98 00 00 34	; Map ID #$37: Cave to Rhone B1
0x0081E8|$02:$81D8:24 0B 0B 4E 98 01 00 5B	; Map ID #$38: Cave to Rhone 1F
0x0081F0|$02:$81E0:24 1B 05 85 98 01 00 5B	; Map ID #$39: Cave to Rhone 2F-1
0x0081F8|$02:$81E8:24 1B 05 D3 98 01 00 5B	; Map ID #$3A: Cave to Rhone 2F-2
0x008200|$02:$81F0:24 0B 09 24 99 01 00 5B	; Map ID #$3B: Cave to Rhone 2F-3
0x008208|$02:$81F8:24 13 1B 59 99 01 00 5B	; Map ID #$3C: Cave to Rhone 3F
0x008210|$02:$8200:24 0F 11 50 9A 01 00 5B	; Map ID #$3D: Cave to Rhone 4F
0x008218|$02:$8208:24 11 13 76 9A 01 00 5B	; Map ID #$3E: Cave to Rhone 5F
0x008220|$02:$8210:24 13 17 27 95 01 00 5B	; Map ID #$3F: Cave to Rhone 6F
0x008228|$02:$8218:24 11 13 FC 9A 01 00 34	; Map ID #$40: Spring of Bravery
0x008230|$02:$8220:24 05 19 00 00 00 00 5B	; Map ID #$41: unused?
0x008238|$02:$8228:24 0F 13 00 00 00 00 5B	; Map ID #$42: unused?
0x008240|$02:$8230:24 03 0D 80 9B 00 00 1A	; Map ID #$43: Cave to Rimuldar
0x008248|$02:$8238:28 0B 09 8A 9B 01 00 27	; Map ID #$44: Hargon's Castle 2F
0x008250|$02:$8240:28 09 09 A7 9B 01 00 27	; Map ID #$45: Hargon's Castle 3F
0x008258|$02:$8248:28 09 09 CF 9B 01 00 27	; Map ID #$46: Hargon's Castle 4F
0x008260|$02:$8250:28 0B 07 F1 9B 01 00 27	; Map ID #$47: Hargon's Castle 5F
0x008268|$02:$8258:28 0D 06 19 9C 01 00 27	; Map ID #$48: Hargon's Castle 6F
0x008270|$02:$8260:28 0B 0B 3B 9C 01 00 41	; Map ID #$49: Moon Tower 1F
0x008278|$02:$8268:28 0B 0B 83 9C 01 00 27	; Map ID #$4A: Moon Tower 2F
0x008280|$02:$8270:28 09 09 CE 9C 01 00 27	; Map ID #$4B: Moon Tower 3F
0x008288|$02:$8278:28 07 07 FD 9C 01 00 27	; Map ID #$4C: Moon Tower 4F
0x008290|$02:$8280:28 05 05 20 9D 01 00 27	; Map ID #$4D: Moon Tower 5F
0x008298|$02:$8288:28 05 03 3E 9D 00 00 27	; Map ID #$4E: Moon Tower 6F
0x0082A0|$02:$8290:28 03 03 4A 9D 00 00 27	; Map ID #$4F: Moon Tower 7F
0x0082A8|$02:$8298:28 15 15 54 9D 01 00 41	; Map ID #$50: Lighthouse 1F
0x0082B0|$02:$82A0:28 11 11 AF 9D 01 00 27	; Map ID #$51: Lighthouse 2F
0x0082B8|$02:$82A8:28 0F 0F 3B 9E 01 00 27	; Map ID #$52: Lighthouse 3F
0x0082C0|$02:$82B0:28 0D 0D AE 9E 01 00 27	; Map ID #$53: Lighthouse 4F
0x0082C8|$02:$82B8:28 0D 0D 12 9F 01 00 27	; Map ID #$54: Lighthouse 5F
0x0082D0|$02:$82C0:28 09 0D 7A 9F 01 00 27	; Map ID #$55: Lighthouse 6F
0x0082D8|$02:$82C8:28 09 09 B5 9F 01 00 27	; Map ID #$56: Lighthouse 7F
0x0082E0|$02:$82D0:28 07 07 DC 9F 01 00 27	; Map ID #$57: Lighthouse 8F
0x0082E8|$02:$82D8:28 0B 0B F4 9F 00 00 41	; Map ID #$58: Wind Tower 1F
0x0082F0|$02:$82E0:28 0B 0B 17 A0 00 00 27	; Map ID #$59: Wind Tower 2F
0x0082F8|$02:$82E8:28 0B 0B 3C A0 00 00 27	; Map ID #$5A: Wind Tower 3F
0x008300|$02:$82F0:28 09 09 60 A0 00 00 27	; Map ID #$5B: Wind Tower 4F
0x008308|$02:$82F8:28 09 09 7E A0 00 00 27	; Map ID #$5C: Wind Tower 5F
0x008310|$02:$8300:28 09 09 9A A0 00 00 27	; Map ID #$5D: Wind Tower 6F
0x008318|$02:$8308:28 05 05 C1 A0 00 00 27	; Map ID #$5E: Wind Tower 7F
0x008320|$02:$8310:28 05 05 D3 A0 00 00 27	; Map ID #$5F: Wind Tower 8F
0x008328|$02:$8318:28 07 07 E7 A0 00 00 41	; Map ID #$60: Dragon Horn South 1F
0x008330|$02:$8320:28 07 07 FF A0 00 00 27	; Map ID #$61: Dragon Horn South 2F
0x008338|$02:$8328:28 07 07 15 A1 00 00 27	; Map ID #$62: Dragon Horn South 3F
0x008340|$02:$8330:28 07 07 2B A1 00 00 27	; Map ID #$63: Dragon Horn South 4F
0x008348|$02:$8338:28 07 07 41 A1 00 00 27	; Map ID #$64: Dragon Horn South 5F
0x008350|$02:$8340:28 05 05 57 A1 00 00 27	; Map ID #$65: Dragon Horn South 6F
0x008358|$02:$8348:28 07 07 68 A1 00 00 41	; Map ID #$66: Dragon Horn North 1F
0x008360|$02:$8350:28 07 07 7F A1 00 00 27	; Map ID #$67: Dragon Horn North 2F
0x008368|$02:$8358:28 07 07 94 A1 00 00 27	; Map ID #$68: Dragon Horn North 3F
0x008370|$02:$8360:28 07 07 A9 A1 00 00 27	; Map ID #$69: Dragon Horn North 4F
0x008378|$02:$8368:28 07 07 BE A1 00 00 27	; Map ID #$6A: Dragon Horn North 5F
0x008380|$02:$8370:28 07 07 D3 A1 00 00 27	; Map ID #$6B: Dragon Horn North 6F
0x008388|$02:$8378:28 07 07 E8 A1 00 00 27	; Map ID #$6C: Dragon Horn North 7F

; data -> unknown
0x008390|$02:$8380:77      	; INVALID OPCODE
0x008391|$02:$8381:77      	; INVALID OPCODE
0x008392|$02:$8382:5F      	; INVALID OPCODE
0x008393|$02:$8383:5F      	; INVALID OPCODE
0x008394|$02:$8384:00      	; BRK        
0x008395|$02:$8385:77      	; INVALID OPCODE
0x008396|$02:$8386:77      	; INVALID OPCODE
0x008397|$02:$8387:6A      	; ROR        
0x008398|$02:$8388:5F      	; INVALID OPCODE
0x008399|$02:$8389:00      	; BRK        
0x00839A|$02:$838A:77      	; INVALID OPCODE
0x00839B|$02:$838B:77      	; INVALID OPCODE
0x00839C|$02:$838C:5F      	; INVALID OPCODE
0x00839D|$02:$838D:6A      	; ROR        
0x00839E|$02:$838E:00      	; BRK        
0x00839F|$02:$838F:77      	; INVALID OPCODE
0x0083A0|$02:$8390:77      	; INVALID OPCODE
0x0083A1|$02:$8391:6A      	; ROR        
0x0083A2|$02:$8392:6A      	; ROR        
0x0083A3|$02:$8393:00      	; BRK        
0x0083A4|$02:$8394:77      	; INVALID OPCODE
0x0083A5|$02:$8395:7C      	; INVALID OPCODE
0x0083A6|$02:$8396:5F      	; INVALID OPCODE
0x0083A7|$02:$8397:7B      	; INVALID OPCODE
0x0083A8|$02:$8398:00      	; BRK        
0x0083A9|$02:$8399:77      	; INVALID OPCODE
0x0083AA|$02:$839A:7C      	; INVALID OPCODE
0x0083AB|$02:$839B:6A      	; ROR        
0x0083AC|$02:$839C:7B      	; INVALID OPCODE
0x0083AD|$02:$839D:00      	; BRK        
0x0083AE|$02:$839E:5F      	; INVALID OPCODE
0x0083AF|$02:$839F:7B      	; INVALID OPCODE
0x0083B0|$02:$83A0:5F      	; INVALID OPCODE
0x0083B1|$02:$83A1:7B      	; INVALID OPCODE
0x0083B2|$02:$83A2:00      	; BRK        
0x0083B3|$02:$83A3:5F      	; INVALID OPCODE
0x0083B4|$02:$83A4:7B      	; INVALID OPCODE
0x0083B5|$02:$83A5:7D 7E 00	; ADC $007E,X
0x0083B6|$02:$83A6:7E 00 77	; ROR $7700,X
0x0083B7|$02:$83A7:00      	; BRK        
0x0083B8|$02:$83A8:77      	; INVALID OPCODE
0x0083B9|$02:$83A9:7C      	; INVALID OPCODE
0x0083BA|$02:$83AA:6B      	; INVALID OPCODE
0x0083BB|$02:$83AB:7B      	; INVALID OPCODE
0x0083BC|$02:$83AC:00      	; BRK        
0x0083BD|$02:$83AD:77      	; INVALID OPCODE
0x0083BE|$02:$83AE:77      	; INVALID OPCODE
0x0083BF|$02:$83AF:6B      	; INVALID OPCODE
0x0083C0|$02:$83B0:5F      	; INVALID OPCODE
0x0083C1|$02:$83B1:00      	; BRK        
0x0083C2|$02:$83B2:77      	; INVALID OPCODE
0x0083C3|$02:$83B3:77      	; INVALID OPCODE
0x0083C4|$02:$83B4:5F      	; INVALID OPCODE
0x0083C5|$02:$83B5:6B      	; INVALID OPCODE
0x0083C6|$02:$83B6:00      	; BRK        
0x0083C7|$02:$83B7:77      	; INVALID OPCODE
0x0083C8|$02:$83B8:77      	; INVALID OPCODE
0x0083C9|$02:$83B9:6B      	; INVALID OPCODE
0x0083CA|$02:$83BA:6B      	; INVALID OPCODE
0x0083CB|$02:$83BB:00      	; BRK        
0x0083CC|$02:$83BC:77      	; INVALID OPCODE
0x0083CD|$02:$83BD:77      	; INVALID OPCODE
0x0083CE|$02:$83BE:6B      	; INVALID OPCODE
0x0083CF|$02:$83BF:6A      	; ROR        
0x0083D0|$02:$83C0:00      	; BRK        
0x0083D1|$02:$83C1:77      	; INVALID OPCODE
0x0083D2|$02:$83C2:77      	; INVALID OPCODE
0x0083D3|$02:$83C3:6A      	; ROR        
0x0083D4|$02:$83C4:6B      	; INVALID OPCODE
0x0083D5|$02:$83C5:00      	; BRK        
0x0083D6|$02:$83C6:5F      	; INVALID OPCODE
0x0083D7|$02:$83C7:5F      	; INVALID OPCODE
0x0083D8|$02:$83C8:5F      	; INVALID OPCODE
0x0083D9|$02:$83C9:5F      	; INVALID OPCODE
0x0083DA|$02:$83CA:00      	; BRK        

; unknown -> data
; external indirect data load target (via $0F:$DEBD, $0F:$F93F)
; indirect data load target
0x0083DB|$02:$83CB:C4
; indirect data load target
0x0083DC|$02:$83CC:C8
; indirect data load target
0x0083DD|$02:$83CD:C3
; indirect data load target
0x0083DE|$02:$83CE:C7
; indirect data load target
0x0083DF|$02:$83CF:02
; indirect data load target
0x0083E0|$02:$83D0:90
; indirect data load target
0x0083E1|$02:$83D1:90
; indirect data load target
0x0083E2|$02:$83D2:90
; indirect data load target
0x0083E3|$02:$83D3:90
; indirect data load target
0x0083E4|$02:$83D4:03
; indirect data load target
0x0083E5|$02:$83D5:91
; indirect data load target
0x0083E6|$02:$83D6:91
; indirect data load target
0x0083E7|$02:$83D7:91
; indirect data load target
0x0083E8|$02:$83D8:91
; indirect data load target
0x0083E9|$02:$83D9:51
; indirect data load target
0x0083EA|$02:$83DA:A2
; indirect data load target
0x0083EB|$02:$83DB:A2
; indirect data load target
0x0083EC|$02:$83DC:9F
; indirect data load target
0x0083ED|$02:$83DD:9F
; indirect data load target
0x0083EE|$02:$83DE:53
; indirect data load target
0x0083EF|$02:$83DF:A1
; indirect data load target
0x0083F0|$02:$83E0:A0
; indirect data load target
0x0083F1|$02:$83E1:A0
; indirect data load target
0x0083F2|$02:$83E2:A1
; indirect data load target
0x0083F3|$02:$83E3:40
; indirect data load target
0x0083F4|$02:$83E4:94
; indirect data load target
0x0083F5|$02:$83E5:96
; indirect data load target
0x0083F6|$02:$83E6:93
; indirect data load target
0x0083F7|$02:$83E7:95
; indirect data load target
0x0083F8|$02:$83E8:F2
; indirect data load target
0x0083F9|$02:$83E9:BE
; indirect data load target
0x0083FA|$02:$83EA:C0
; indirect data load target
0x0083FB|$02:$83EB:BD
; indirect data load target
0x0083FC|$02:$83EC:BF
; indirect data load target
0x0083FD|$02:$83ED:03
; indirect data load target
0x0083FE|$02:$83EE:9C
; indirect data load target
0x0083FF|$02:$83EF:9E
; indirect data load target
0x008400|$02:$83F0:9B
; indirect data load target
0x008401|$02:$83F1:9D
; indirect data load target
0x008402|$02:$83F2:61
; indirect data load target
0x008403|$02:$83F3:92
; indirect data load target
0x008404|$02:$83F4:92
; indirect data load target
0x008405|$02:$83F5:92
; indirect data load target
0x008406|$02:$83F6:92
; indirect data load target
0x008407|$02:$83F7:73
; indirect data load target
0x008408|$02:$83F8:B6
; indirect data load target
0x008409|$02:$83F9:B8
; indirect data load target
0x00840A|$02:$83FA:B5
; indirect data load target
0x00840B|$02:$83FB:B7
; indirect data load target
0x00840C|$02:$83FC:00
; indirect data load target
0x00840D|$02:$83FD:DE
; indirect data load target
0x00840E|$02:$83FE:E0
; indirect data load target
0x00840F|$02:$83FF:DD
; indirect data load target
0x008410|$02:$8400:DF
; indirect data load target
0x008411|$02:$8401:11
; indirect data load target
0x008412|$02:$8402:DA
; indirect data load target
0x008413|$02:$8403:DC
; indirect data load target
0x008414|$02:$8404:D9
; indirect data load target
0x008415|$02:$8405:DB
; indirect data load target
0x008416|$02:$8406:12
; indirect data load target
0x008417|$02:$8407:98
; indirect data load target
0x008418|$02:$8408:9A
; indirect data load target
0x008419|$02:$8409:97
; indirect data load target
0x00841A|$02:$840A:99
; indirect data load target
0x00841B|$02:$840B:12
; indirect data load target
0x00841C|$02:$840C:BA
; indirect data load target
0x00841D|$02:$840D:BC
; indirect data load target
0x00841E|$02:$840E:B9
; indirect data load target
0x00841F|$02:$840F:BB
; indirect data load target
0x008420|$02:$8410:00
; indirect data load target
0x008421|$02:$8411:D2
; indirect data load target
0x008422|$02:$8412:D4
; indirect data load target
0x008423|$02:$8413:D1
; indirect data load target
0x008424|$02:$8414:D3
; indirect data load target
0x008425|$02:$8415:12
; indirect data load target
0x008426|$02:$8416:D6
; indirect data load target
0x008427|$02:$8417:D8
; indirect data load target
0x008428|$02:$8418:D5
; indirect data load target
0x008429|$02:$8419:D7
; indirect data load target
0x00842A|$02:$841A:12
; indirect data load target
0x00842B|$02:$841B:C2
; indirect data load target
0x00842C|$02:$841C:C6
; indirect data load target
0x00842D|$02:$841D:C1
; indirect data load target
0x00842E|$02:$841E:C5
; indirect data load target
0x00842F|$02:$841F:12
; indirect data load target
0x008430|$02:$8420:CA
; indirect data load target
0x008431|$02:$8421:CE
; indirect data load target
0x008432|$02:$8422:C9
; indirect data load target
0x008433|$02:$8423:CD
; indirect data load target
0x008434|$02:$8424:12
; indirect data load target
0x008435|$02:$8425:CC
; indirect data load target
0x008436|$02:$8426:D0
; indirect data load target
0x008437|$02:$8427:CB
; indirect data load target
0x008438|$02:$8428:CF
; indirect data load target
0x008439|$02:$8429:02
; indirect data load target
0x00843A|$02:$842A:E2
; indirect data load target
0x00843B|$02:$842B:E4
; indirect data load target
0x00843C|$02:$842C:E1
; indirect data load target
0x00843D|$02:$842D:E3
; indirect data load target
0x00843E|$02:$842E:F0
; indirect data load target
0x00843F|$02:$842F:A4
; indirect data load target
0x008440|$02:$8430:A6
; indirect data load target
0x008441|$02:$8431:A3
; indirect data load target
0x008442|$02:$8432:A5
; indirect data load target
0x008443|$02:$8433:40
; indirect data load target
0x008444|$02:$8434:A8
; indirect data load target
0x008445|$02:$8435:A6
; indirect data load target
0x008446|$02:$8436:A7
; indirect data load target
0x008447|$02:$8437:A5
; indirect data load target
0x008448|$02:$8438:40
; indirect data load target
0x008449|$02:$8439:A8
; indirect data load target
0x00844A|$02:$843A:B0
; indirect data load target
0x00844B|$02:$843B:A7
; indirect data load target
0x00844C|$02:$843C:A9
; indirect data load target
0x00844D|$02:$843D:40
; indirect data load target
0x00844E|$02:$843E:AA
; indirect data load target
0x00844F|$02:$843F:A7
; indirect data load target
0x008450|$02:$8440:A3
; indirect data load target
0x008451|$02:$8441:A5
; indirect data load target
0x008452|$02:$8442:40
; indirect data load target
0x008453|$02:$8443:A5
; indirect data load target
0x008454|$02:$8444:AB
; indirect data load target
0x008455|$02:$8445:A7
; indirect data load target
0x008456|$02:$8446:A9
; indirect data load target
0x008457|$02:$8447:40
; indirect data load target
0x008458|$02:$8448:AA
; indirect data load target
0x008459|$02:$8449:A7
; indirect data load target
0x00845A|$02:$844A:AC
; indirect data load target
0x00845B|$02:$844B:AD
; indirect data load target
0x00845C|$02:$844C:40
; indirect data load target
0x00845D|$02:$844D:A5
; indirect data load target
0x00845E|$02:$844E:A7
; indirect data load target
0x00845F|$02:$844F:AE
; indirect data load target
0x008460|$02:$8450:AD
; indirect data load target
0x008461|$02:$8451:40
; indirect data load target
0x008462|$02:$8452:A5
; indirect data load target
0x008463|$02:$8453:AB
; indirect data load target
0x008464|$02:$8454:AE
; indirect data load target
0x008465|$02:$8455:AF
; indirect data load target
0x008466|$02:$8456:40
; indirect data load target
0x008467|$02:$8457:B1
; indirect data load target
0x008468|$02:$8458:A7
; indirect data load target
0x008469|$02:$8459:A7
; indirect data load target
0x00846A|$02:$845A:A5
; indirect data load target
0x00846B|$02:$845B:40
; indirect data load target
0x00846C|$02:$845C:A5
; indirect data load target
0x00846D|$02:$845D:B2
; indirect data load target
0x00846E|$02:$845E:A7
; indirect data load target
0x00846F|$02:$845F:A5
; indirect data load target
0x008470|$02:$8460:40
; indirect data load target
0x008471|$02:$8461:A5
; indirect data load target
0x008472|$02:$8462:A7
; indirect data load target
0x008473|$02:$8463:A7
; indirect data load target
0x008474|$02:$8464:B3
; indirect data load target
0x008475|$02:$8465:40
; indirect data load target
0x008476|$02:$8466:A5
; indirect data load target
0x008477|$02:$8467:A7
; indirect data load target
0x008478|$02:$8468:B4
; indirect data load target
0x008479|$02:$8469:A5
; indirect data load target
0x00847A|$02:$846A:40
; external indirect data load target (via $0F:$DEBF, $0F:$F941)
; indirect data load target
0x00847B|$02:$846B:91
; indirect data load target
0x00847C|$02:$846C:93
; indirect data load target
0x00847D|$02:$846D:90
; indirect data load target
0x00847E|$02:$846E:92
; indirect data load target
0x00847F|$02:$846F:02
; indirect data load target
0x008480|$02:$8470:94
; indirect data load target
0x008481|$02:$8471:94
; indirect data load target
0x008482|$02:$8472:94
; indirect data load target
0x008483|$02:$8473:94
; indirect data load target
0x008484|$02:$8474:03
; indirect data load target
0x008485|$02:$8475:95
; indirect data load target
0x008486|$02:$8476:95
; indirect data load target
0x008487|$02:$8477:95
; indirect data load target
0x008488|$02:$8478:95
; indirect data load target
0x008489|$02:$8479:01
; indirect data load target
0x00848A|$02:$847A:9D
; indirect data load target
0x00848B|$02:$847B:9F
; indirect data load target
0x00848C|$02:$847C:9C
; indirect data load target
0x00848D|$02:$847D:9E
; indirect data load target
0x00848E|$02:$847E:03
; indirect data load target
0x00848F|$02:$847F:A1
; indirect data load target
0x008490|$02:$8480:A0
; indirect data load target
0x008491|$02:$8481:A0
; indirect data load target
0x008492|$02:$8482:A1
; indirect data load target
0x008493|$02:$8483:40
; indirect data load target
0x008494|$02:$8484:D9
; indirect data load target
0x008495|$02:$8485:DB
; indirect data load target
0x008496|$02:$8486:D9
; indirect data load target
0x008497|$02:$8487:DB
; indirect data load target
0x008498|$02:$8488:F2
; indirect data load target
0x008499|$02:$8489:C5
; indirect data load target
0x00849A|$02:$848A:C7
; indirect data load target
0x00849B|$02:$848B:C4
; indirect data load target
0x00849C|$02:$848C:C6
; indirect data load target
0x00849D|$02:$848D:03
; indirect data load target
0x00849E|$02:$848E:D9
; indirect data load target
0x00849F|$02:$848F:DB
; indirect data load target
0x0084A0|$02:$8490:D8
; indirect data load target
0x0084A1|$02:$8491:DA
; indirect data load target
0x0084A2|$02:$8492:F2
; indirect data load target
0x0084A3|$02:$8493:A4
; indirect data load target
0x0084A4|$02:$8494:A4
; indirect data load target
0x0084A5|$02:$8495:A4
; indirect data load target
0x0084A6|$02:$8496:A4
; indirect data load target
0x0084A7|$02:$8497:73
; indirect data load target
0x0084A8|$02:$8498:C1
; indirect data load target
0x0084A9|$02:$8499:C3
; indirect data load target
0x0084AA|$02:$849A:C0
; indirect data load target
0x0084AB|$02:$849B:C2
; indirect data load target
0x0084AC|$02:$849C:00
; indirect data load target
0x0084AD|$02:$849D:E2
; indirect data load target
0x0084AE|$02:$849E:E4
; indirect data load target
0x0084AF|$02:$849F:E1
; indirect data load target
0x0084B0|$02:$84A0:E3
; indirect data load target
0x0084B1|$02:$84A1:F2
; indirect data load target
0x0084B2|$02:$84A2:DE
; indirect data load target
0x0084B3|$02:$84A3:E0
; indirect data load target
0x0084B4|$02:$84A4:DD
; indirect data load target
0x0084B5|$02:$84A5:DF
; indirect data load target
0x0084B6|$02:$84A6:F1
; indirect data load target
0x0084B7|$02:$84A7:CD
; indirect data load target
0x0084B8|$02:$84A8:CF
; indirect data load target
0x0084B9|$02:$84A9:CC
; indirect data load target
0x0084BA|$02:$84AA:CE
; indirect data load target
0x0084BB|$02:$84AB:12
; indirect data load target
0x0084BC|$02:$84AC:BD
; indirect data load target
0x0084BD|$02:$84AD:BF
; indirect data load target
0x0084BE|$02:$84AE:BC
; indirect data load target
0x0084BF|$02:$84AF:BE
; indirect data load target
0x0084C0|$02:$84B0:F1
; indirect data load target
0x0084C1|$02:$84B1:EA
; indirect data load target
0x0084C2|$02:$84B2:EC
; indirect data load target
0x0084C3|$02:$84B3:E9
; indirect data load target
0x0084C4|$02:$84B4:EB
; indirect data load target
0x0084C5|$02:$84B5:F1
; indirect data load target
0x0084C6|$02:$84B6:EE
; indirect data load target
0x0084C7|$02:$84B7:F0
; indirect data load target
0x0084C8|$02:$84B8:ED
; indirect data load target
0x0084C9|$02:$84B9:EF
; indirect data load target
0x0084CA|$02:$84BA:F1
; indirect data load target
0x0084CB|$02:$84BB:C9
; indirect data load target
0x0084CC|$02:$84BC:CB
; indirect data load target
0x0084CD|$02:$84BD:C8
; indirect data load target
0x0084CE|$02:$84BE:CA
; indirect data load target
0x0084CF|$02:$84BF:22
; indirect data load target
0x0084D0|$02:$84C0:B1
; indirect data load target
0x0084D1|$02:$84C1:B1
; indirect data load target
0x0084D2|$02:$84C2:B1
; indirect data load target
0x0084D3|$02:$84C3:B1
; indirect data load target
0x0084D4|$02:$84C4:80
; indirect data load target
0x0084D5|$02:$84C5:AE
; indirect data load target
0x0084D6|$02:$84C6:B0
; indirect data load target
0x0084D7|$02:$84C7:AD
; indirect data load target
0x0084D8|$02:$84C8:AF
; indirect data load target
0x0084D9|$02:$84C9:F0
; indirect data load target
0x0084DA|$02:$84CA:D1
; indirect data load target
0x0084DB|$02:$84CB:D3
; indirect data load target
0x0084DC|$02:$84CC:D0
; indirect data load target
0x0084DD|$02:$84CD:D2
; indirect data load target
0x0084DE|$02:$84CE:30
; indirect data load target
0x0084DF|$02:$84CF:E6
; indirect data load target
0x0084E0|$02:$84D0:E8
; indirect data load target
0x0084E1|$02:$84D1:E5
; indirect data load target
0x0084E2|$02:$84D2:E7
; indirect data load target
0x0084E3|$02:$84D3:02
; indirect data load target
0x0084E4|$02:$84D4:B2
; indirect data load target
0x0084E5|$02:$84D5:B3
; indirect data load target
0x0084E6|$02:$84D6:B2
; indirect data load target
0x0084E7|$02:$84D7:B3
; indirect data load target
0x0084E8|$02:$84D8:01
; indirect data load target
0x0084E9|$02:$84D9:D5
; indirect data load target
0x0084EA|$02:$84DA:D7
; indirect data load target
0x0084EB|$02:$84DB:D4
; indirect data load target
0x0084EC|$02:$84DC:D6
; indirect data load target
0x0084ED|$02:$84DD:02
; indirect data load target
0x0084EE|$02:$84DE:F2
; indirect data load target
0x0084EF|$02:$84DF:F4
; indirect data load target
0x0084F0|$02:$84E0:F1
; indirect data load target
0x0084F1|$02:$84E1:F3
; indirect data load target
0x0084F2|$02:$84E2:02
; indirect data load target
0x0084F3|$02:$84E3:B5
; indirect data load target
0x0084F4|$02:$84E4:B7
; indirect data load target
0x0084F5|$02:$84E5:B4
; indirect data load target
0x0084F6|$02:$84E6:B6
; indirect data load target
0x0084F7|$02:$84E7:F2
; indirect data load target
0x0084F8|$02:$84E8:B9
; indirect data load target
0x0084F9|$02:$84E9:BB
; indirect data load target
0x0084FA|$02:$84EA:B8
; indirect data load target
0x0084FB|$02:$84EB:BA
; indirect data load target
0x0084FC|$02:$84EC:F1
; indirect data load target
0x0084FD|$02:$84ED:A6
; indirect data load target
0x0084FE|$02:$84EE:A8
; indirect data load target
0x0084FF|$02:$84EF:A5
; indirect data load target
0x008500|$02:$84F0:A7
; indirect data load target
0x008501|$02:$84F1:F2
; indirect data load target
0x008502|$02:$84F2:97
; indirect data load target
0x008503|$02:$84F3:99
; indirect data load target
0x008504|$02:$84F4:96
; indirect data load target
0x008505|$02:$84F5:98
; indirect data load target
0x008506|$02:$84F6:F2
; indirect data load target
0x008507|$02:$84F7:F6
; indirect data load target
0x008508|$02:$84F8:F8
; indirect data load target
0x008509|$02:$84F9:F5
; indirect data load target
0x00850A|$02:$84FA:F7
; indirect data load target
0x00850B|$02:$84FB:F0
; indirect data load target
0x00850C|$02:$84FC:9B
; indirect data load target
0x00850D|$02:$84FD:A3
; indirect data load target
0x00850E|$02:$84FE:9A
; indirect data load target
0x00850F|$02:$84FF:A2
; indirect data load target
0x008510|$02:$8500:01
; indirect data load target
0x008511|$02:$8501:AA
; indirect data load target
0x008512|$02:$8502:AC
; indirect data load target
0x008513|$02:$8503:A9
; indirect data load target
0x008514|$02:$8504:AB
; indirect data load target
0x008515|$02:$8505:91
; indirect data load target
0x008516|$02:$8506:84
; indirect data load target
0x008517|$02:$8507:84
; indirect data load target
0x008518|$02:$8508:84
; indirect data load target
0x008519|$02:$8509:84
; indirect data load target
0x00851A|$02:$850A:00
; indirect data load target
0x00851B|$02:$850B:F9
; indirect data load target
0x00851C|$02:$850C:F9
; indirect data load target
0x00851D|$02:$850D:DC
; indirect data load target
0x00851E|$02:$850E:DC
; indirect data load target
0x00851F|$02:$850F:02
; indirect data load target
0x008520|$02:$8510:DC
; indirect data load target
0x008521|$02:$8511:DC
; indirect data load target
0x008522|$02:$8512:DC
; indirect data load target
0x008523|$02:$8513:DC
; indirect data load target
0x008524|$02:$8514:02
; indirect data load target
0x008525|$02:$8515:DC
; indirect data load target
0x008526|$02:$8516:DC
; indirect data load target
0x008527|$02:$8517:DC
; indirect data load target
0x008528|$02:$8518:DC
; indirect data load target
0x008529|$02:$8519:02
; indirect data load target
0x00852A|$02:$851A:DC
; indirect data load target
0x00852B|$02:$851B:DC
; indirect data load target
0x00852C|$02:$851C:DC
; indirect data load target
0x00852D|$02:$851D:DC
; indirect data load target
0x00852E|$02:$851E:02
; indirect data load target
0x00852F|$02:$851F:5F
; indirect data load target
0x008530|$02:$8520:5F
; indirect data load target
0x008531|$02:$8521:5F
; indirect data load target
0x008532|$02:$8522:5F
; indirect data load target
0x008533|$02:$8523:01
; indirect data load target
0x008534|$02:$8524:5F
; indirect data load target
0x008535|$02:$8525:5F
; indirect data load target
0x008536|$02:$8526:5F
; indirect data load target
0x008537|$02:$8527:5F
; indirect data load target
0x008538|$02:$8528:01
; indirect data load target
0x008539|$02:$8529:5F
; indirect data load target
0x00853A|$02:$852A:5F
; indirect data load target
0x00853B|$02:$852B:5F
; indirect data load target
0x00853C|$02:$852C:5F
; indirect data load target
0x00853D|$02:$852D:01
; indirect data load target
0x00853E|$02:$852E:5F
; indirect data load target
0x00853F|$02:$852F:5F
; indirect data load target
0x008540|$02:$8530:5F
; indirect data load target
0x008541|$02:$8531:5F
; indirect data load target
0x008542|$02:$8532:01
; external indirect data load target (via $0F:$DEC1, $0F:$F943)
; indirect data load target
0x008543|$02:$8533:B0
; indirect data load target
0x008544|$02:$8534:B0
; indirect data load target
0x008545|$02:$8535:B0
; indirect data load target
0x008546|$02:$8536:B0
; indirect data load target
0x008547|$02:$8537:02
; indirect data load target
0x008548|$02:$8538:B0
; indirect data load target
0x008549|$02:$8539:B0
; indirect data load target
0x00854A|$02:$853A:B0
; indirect data load target
0x00854B|$02:$853B:B0
; indirect data load target
0x00854C|$02:$853C:02
; indirect data load target
0x00854D|$02:$853D:B0
; indirect data load target
0x00854E|$02:$853E:B0
; indirect data load target
0x00854F|$02:$853F:B0
; indirect data load target
0x008550|$02:$8540:B0
; indirect data load target
0x008551|$02:$8541:02
; indirect data load target
0x008552|$02:$8542:B0
; indirect data load target
0x008553|$02:$8543:B0
; indirect data load target
0x008554|$02:$8544:B0
; indirect data load target
0x008555|$02:$8545:B0
; indirect data load target
0x008556|$02:$8546:02
; indirect data load target
0x008557|$02:$8547:BD
; indirect data load target
0x008558|$02:$8548:BE
; indirect data load target
0x008559|$02:$8549:BE
; indirect data load target
0x00855A|$02:$854A:BD
; indirect data load target
0x00855B|$02:$854B:A0
; indirect data load target
0x00855C|$02:$854C:BD
; indirect data load target
0x00855D|$02:$854D:BE
; indirect data load target
0x00855E|$02:$854E:BE
; indirect data load target
0x00855F|$02:$854F:BD
; indirect data load target
0x008560|$02:$8550:A0
; indirect data load target
0x008561|$02:$8551:BD
; indirect data load target
0x008562|$02:$8552:BE
; indirect data load target
0x008563|$02:$8553:BE
; indirect data load target
0x008564|$02:$8554:BD
; indirect data load target
0x008565|$02:$8555:A0
; indirect data load target
0x008566|$02:$8556:BD
; indirect data load target
0x008567|$02:$8557:BE
; indirect data load target
0x008568|$02:$8558:BE
; indirect data load target
0x008569|$02:$8559:BD
; indirect data load target
0x00856A|$02:$855A:A0
; indirect data load target
0x00856B|$02:$855B:93
; indirect data load target
0x00856C|$02:$855C:97
; indirect data load target
0x00856D|$02:$855D:92
; indirect data load target
0x00856E|$02:$855E:96
; indirect data load target
0x00856F|$02:$855F:F3
; indirect data load target
0x008570|$02:$8560:9B
; indirect data load target
0x008571|$02:$8561:9F
; indirect data load target
0x008572|$02:$8562:9A
; indirect data load target
0x008573|$02:$8563:9E
; indirect data load target
0x008574|$02:$8564:F3
; indirect data load target
0x008575|$02:$8565:91
; indirect data load target
0x008576|$02:$8566:95
; indirect data load target
0x008577|$02:$8567:90
; indirect data load target
0x008578|$02:$8568:94
; indirect data load target
0x008579|$02:$8569:F3
; indirect data load target
0x00857A|$02:$856A:99
; indirect data load target
0x00857B|$02:$856B:9D
; indirect data load target
0x00857C|$02:$856C:98
; indirect data load target
0x00857D|$02:$856D:9C
; indirect data load target
0x00857E|$02:$856E:F3
; indirect data load target
0x00857F|$02:$856F:B0
; indirect data load target
0x008580|$02:$8570:B0
; indirect data load target
0x008581|$02:$8571:B0
; indirect data load target
0x008582|$02:$8572:B0
; indirect data load target
0x008583|$02:$8573:02
; indirect data load target
0x008584|$02:$8574:B0
; indirect data load target
0x008585|$02:$8575:B0
; indirect data load target
0x008586|$02:$8576:B0
; indirect data load target
0x008587|$02:$8577:B0
; indirect data load target
0x008588|$02:$8578:02
; indirect data load target
0x008589|$02:$8579:BA
; indirect data load target
0x00858A|$02:$857A:BC
; indirect data load target
0x00858B|$02:$857B:B9
; indirect data load target
0x00858C|$02:$857C:BB
; indirect data load target
0x00858D|$02:$857D:11
; indirect data load target
0x00858E|$02:$857E:B0
; indirect data load target
0x00858F|$02:$857F:B0
; indirect data load target
0x008590|$02:$8580:B0
; indirect data load target
0x008591|$02:$8581:B0
; indirect data load target
0x008592|$02:$8582:02
; indirect data load target
0x008593|$02:$8583:B0
; indirect data load target
0x008594|$02:$8584:B0
; indirect data load target
0x008595|$02:$8585:B0
; indirect data load target
0x008596|$02:$8586:B0
; indirect data load target
0x008597|$02:$8587:02
; indirect data load target
0x008598|$02:$8588:B6
; indirect data load target
0x008599|$02:$8589:B8
; indirect data load target
0x00859A|$02:$858A:B5
; indirect data load target
0x00859B|$02:$858B:B7
; indirect data load target
0x00859C|$02:$858C:21
; indirect data load target
0x00859D|$02:$858D:B0
; indirect data load target
0x00859E|$02:$858E:B0
; indirect data load target
0x00859F|$02:$858F:B0
; indirect data load target
0x0085A0|$02:$8590:B0
; indirect data load target
0x0085A1|$02:$8591:02
; indirect data load target
0x0085A2|$02:$8592:B0
; indirect data load target
0x0085A3|$02:$8593:B0
; indirect data load target
0x0085A4|$02:$8594:B0
; indirect data load target
0x0085A5|$02:$8595:B0
; indirect data load target
0x0085A6|$02:$8596:02
; indirect data load target
0x0085A7|$02:$8597:B2
; indirect data load target
0x0085A8|$02:$8598:B4
; indirect data load target
0x0085A9|$02:$8599:B1
; indirect data load target
0x0085AA|$02:$859A:B3
; indirect data load target
0x0085AB|$02:$859B:01
; indirect data load target
0x0085AC|$02:$859C:B0
; indirect data load target
0x0085AD|$02:$859D:B0
; indirect data load target
0x0085AE|$02:$859E:B0
; indirect data load target
0x0085AF|$02:$859F:B0
; indirect data load target
0x0085B0|$02:$85A0:02
; indirect data load target
0x0085B1|$02:$85A1:B0
; indirect data load target
0x0085B2|$02:$85A2:B0
; indirect data load target
0x0085B3|$02:$85A3:B0
; indirect data load target
0x0085B4|$02:$85A4:B0
; indirect data load target
0x0085B5|$02:$85A5:02
; indirect data load target
0x0085B6|$02:$85A6:B0
; indirect data load target
0x0085B7|$02:$85A7:B0
; indirect data load target
0x0085B8|$02:$85A8:B0
; indirect data load target
0x0085B9|$02:$85A9:B0
; indirect data load target
0x0085BA|$02:$85AA:02
; indirect data load target
0x0085BB|$02:$85AB:C4
; indirect data load target
0x0085BC|$02:$85AC:C8
; indirect data load target
0x0085BD|$02:$85AD:C3
; indirect data load target
0x0085BE|$02:$85AE:C7
; indirect data load target
0x0085BF|$02:$85AF:F2
; indirect data load target
0x0085C0|$02:$85B0:CC
; indirect data load target
0x0085C1|$02:$85B1:D0
; indirect data load target
0x0085C2|$02:$85B2:CB
; indirect data load target
0x0085C3|$02:$85B3:CF
; indirect data load target
0x0085C4|$02:$85B4:F2
; indirect data load target
0x0085C5|$02:$85B5:C2
; indirect data load target
0x0085C6|$02:$85B6:C6
; indirect data load target
0x0085C7|$02:$85B7:C1
; indirect data load target
0x0085C8|$02:$85B8:C5
; indirect data load target
0x0085C9|$02:$85B9:F2
; indirect data load target
0x0085CA|$02:$85BA:CA
; indirect data load target
0x0085CB|$02:$85BB:CE
; indirect data load target
0x0085CC|$02:$85BC:C9
; indirect data load target
0x0085CD|$02:$85BD:CD
; indirect data load target
0x0085CE|$02:$85BE:F2
; indirect data load target
0x0085CF|$02:$85BF:A3
; indirect data load target
0x0085D0|$02:$85C0:A7
; indirect data load target
0x0085D1|$02:$85C1:A2
; indirect data load target
0x0085D2|$02:$85C2:A6
; indirect data load target
0x0085D3|$02:$85C3:F3
; indirect data load target
0x0085D4|$02:$85C4:AB
; indirect data load target
0x0085D5|$02:$85C5:AF
; indirect data load target
0x0085D6|$02:$85C6:AA
; indirect data load target
0x0085D7|$02:$85C7:AE
; indirect data load target
0x0085D8|$02:$85C8:F3
; indirect data load target
0x0085D9|$02:$85C9:A1
; indirect data load target
0x0085DA|$02:$85CA:A5
; indirect data load target
0x0085DB|$02:$85CB:A0
; indirect data load target
0x0085DC|$02:$85CC:A4
; indirect data load target
0x0085DD|$02:$85CD:F3
; indirect data load target
0x0085DE|$02:$85CE:A9
; indirect data load target
0x0085DF|$02:$85CF:AD
; indirect data load target
0x0085E0|$02:$85D0:A8
; indirect data load target
0x0085E1|$02:$85D1:AC
; indirect data load target
0x0085E2|$02:$85D2:F3
; indirect data load target
0x0085E3|$02:$85D3:5F
; indirect data load target
0x0085E4|$02:$85D4:5F
; indirect data load target
0x0085E5|$02:$85D5:5F
; indirect data load target
0x0085E6|$02:$85D6:5F
; indirect data load target
0x0085E7|$02:$85D7:01
; indirect data load target
0x0085E8|$02:$85D8:5F
; indirect data load target
0x0085E9|$02:$85D9:5F
; indirect data load target
0x0085EA|$02:$85DA:5F
; indirect data load target
0x0085EB|$02:$85DB:5F
; indirect data load target
0x0085EC|$02:$85DC:01
; indirect data load target
0x0085ED|$02:$85DD:5F
; indirect data load target
0x0085EE|$02:$85DE:5F
; indirect data load target
0x0085EF|$02:$85DF:5F
; indirect data load target
0x0085F0|$02:$85E0:5F
; indirect data load target
0x0085F1|$02:$85E1:01
; indirect data load target
0x0085F2|$02:$85E2:5F
; indirect data load target
0x0085F3|$02:$85E3:5F
; indirect data load target
0x0085F4|$02:$85E4:5F
; indirect data load target
0x0085F5|$02:$85E5:5F
; indirect data load target
0x0085F6|$02:$85E6:01
; indirect data load target
0x0085F7|$02:$85E7:5F
; indirect data load target
0x0085F8|$02:$85E8:5F
; indirect data load target
0x0085F9|$02:$85E9:5F
; indirect data load target
0x0085FA|$02:$85EA:5F
; indirect data load target
0x0085FB|$02:$85EB:01
; indirect data load target
0x0085FC|$02:$85EC:5F
; indirect data load target
0x0085FD|$02:$85ED:5F
; indirect data load target
0x0085FE|$02:$85EE:5F
; indirect data load target
0x0085FF|$02:$85EF:5F
; indirect data load target
0x008600|$02:$85F0:01
; indirect data load target
0x008601|$02:$85F1:5F
; indirect data load target
0x008602|$02:$85F2:5F
; indirect data load target
0x008603|$02:$85F3:5F
; indirect data load target
0x008604|$02:$85F4:5F
; indirect data load target
0x008605|$02:$85F5:01
; indirect data load target
0x008606|$02:$85F6:5F
; indirect data load target
0x008607|$02:$85F7:5F
; indirect data load target
0x008608|$02:$85F8:5F
; indirect data load target
0x008609|$02:$85F9:5F
; indirect data load target
0x00860A|$02:$85FA:01
; external indirect data load target (via $0F:$DEC3, $0F:$F945)
; indirect data load target
0x00860B|$02:$85FB:B0
; indirect data load target
0x00860C|$02:$85FC:B0
; indirect data load target
0x00860D|$02:$85FD:B0
; indirect data load target
0x00860E|$02:$85FE:B0
; indirect data load target
0x00860F|$02:$85FF:03
; indirect data load target
0x008610|$02:$8600:B0
; indirect data load target
0x008611|$02:$8601:B0
; indirect data load target
0x008612|$02:$8602:B0
; indirect data load target
0x008613|$02:$8603:B0
; indirect data load target
0x008614|$02:$8604:03
; indirect data load target
0x008615|$02:$8605:B0
; indirect data load target
0x008616|$02:$8606:B0
; indirect data load target
0x008617|$02:$8607:B0
; indirect data load target
0x008618|$02:$8608:B0
; indirect data load target
0x008619|$02:$8609:03
; indirect data load target
0x00861A|$02:$860A:B0
; indirect data load target
0x00861B|$02:$860B:B0
; indirect data load target
0x00861C|$02:$860C:B0
; indirect data load target
0x00861D|$02:$860D:B0
; indirect data load target
0x00861E|$02:$860E:03
; indirect data load target
0x00861F|$02:$860F:A3
; indirect data load target
0x008620|$02:$8610:A7
; indirect data load target
0x008621|$02:$8611:A2
; indirect data load target
0x008622|$02:$8612:A6
; indirect data load target
0x008623|$02:$8613:03
; indirect data load target
0x008624|$02:$8614:AB
; indirect data load target
0x008625|$02:$8615:AF
; indirect data load target
0x008626|$02:$8616:AA
; indirect data load target
0x008627|$02:$8617:AE
; indirect data load target
0x008628|$02:$8618:03
; indirect data load target
0x008629|$02:$8619:A1
; indirect data load target
0x00862A|$02:$861A:A5
; indirect data load target
0x00862B|$02:$861B:A0
; indirect data load target
0x00862C|$02:$861C:A4
; indirect data load target
0x00862D|$02:$861D:03
; indirect data load target
0x00862E|$02:$861E:A9
; indirect data load target
0x00862F|$02:$861F:AD
; indirect data load target
0x008630|$02:$8620:A8
; indirect data load target
0x008631|$02:$8621:AC
; indirect data load target
0x008632|$02:$8622:03
; indirect data load target
0x008633|$02:$8623:E3
; indirect data load target
0x008634|$02:$8624:E7
; indirect data load target
0x008635|$02:$8625:E2
; indirect data load target
0x008636|$02:$8626:E6
; indirect data load target
0x008637|$02:$8627:F2
; indirect data load target
0x008638|$02:$8628:EB
; indirect data load target
0x008639|$02:$8629:EF
; indirect data load target
0x00863A|$02:$862A:EA
; indirect data load target
0x00863B|$02:$862B:EE
; indirect data load target
0x00863C|$02:$862C:F2
; indirect data load target
0x00863D|$02:$862D:E1
; indirect data load target
0x00863E|$02:$862E:E5
; indirect data load target
0x00863F|$02:$862F:E0
; indirect data load target
0x008640|$02:$8630:E4
; indirect data load target
0x008641|$02:$8631:F2
; indirect data load target
0x008642|$02:$8632:E9
; indirect data load target
0x008643|$02:$8633:ED
; indirect data load target
0x008644|$02:$8634:E8
; indirect data load target
0x008645|$02:$8635:EC
; indirect data load target
0x008646|$02:$8636:F2
; indirect data load target
0x008647|$02:$8637:B0
; indirect data load target
0x008648|$02:$8638:B0
; indirect data load target
0x008649|$02:$8639:B0
; indirect data load target
0x00864A|$02:$863A:B0
; indirect data load target
0x00864B|$02:$863B:03
; indirect data load target
0x00864C|$02:$863C:B0
; indirect data load target
0x00864D|$02:$863D:B0
; indirect data load target
0x00864E|$02:$863E:B0
; indirect data load target
0x00864F|$02:$863F:B0
; indirect data load target
0x008650|$02:$8640:03
; indirect data load target
0x008651|$02:$8641:B2
; indirect data load target
0x008652|$02:$8642:B4
; indirect data load target
0x008653|$02:$8643:B1
; indirect data load target
0x008654|$02:$8644:B3
; indirect data load target
0x008655|$02:$8645:13
; indirect data load target
0x008656|$02:$8646:B0
; indirect data load target
0x008657|$02:$8647:B0
; indirect data load target
0x008658|$02:$8648:B0
; indirect data load target
0x008659|$02:$8649:B0
; indirect data load target
0x00865A|$02:$864A:03
; indirect data load target
0x00865B|$02:$864B:B0
; indirect data load target
0x00865C|$02:$864C:B0
; indirect data load target
0x00865D|$02:$864D:B0
; indirect data load target
0x00865E|$02:$864E:B0
; indirect data load target
0x00865F|$02:$864F:03
; indirect data load target
0x008660|$02:$8650:B6
; indirect data load target
0x008661|$02:$8651:B8
; indirect data load target
0x008662|$02:$8652:B5
; indirect data load target
0x008663|$02:$8653:B7
; indirect data load target
0x008664|$02:$8654:23
; indirect data load target
0x008665|$02:$8655:B0
; indirect data load target
0x008666|$02:$8656:B0
; indirect data load target
0x008667|$02:$8657:B0
; indirect data load target
0x008668|$02:$8658:B0
; indirect data load target
0x008669|$02:$8659:03
; indirect data load target
0x00866A|$02:$865A:B0
; indirect data load target
0x00866B|$02:$865B:B0
; indirect data load target
0x00866C|$02:$865C:B0
; indirect data load target
0x00866D|$02:$865D:B0
; indirect data load target
0x00866E|$02:$865E:03
; indirect data load target
0x00866F|$02:$865F:BA
; indirect data load target
0x008670|$02:$8660:BC
; indirect data load target
0x008671|$02:$8661:B9
; indirect data load target
0x008672|$02:$8662:BB
; indirect data load target
0x008673|$02:$8663:01
; indirect data load target
0x008674|$02:$8664:B0
; indirect data load target
0x008675|$02:$8665:B0
; indirect data load target
0x008676|$02:$8666:B0
; indirect data load target
0x008677|$02:$8667:B0
; indirect data load target
0x008678|$02:$8668:03
; indirect data load target
0x008679|$02:$8669:B0
; indirect data load target
0x00867A|$02:$866A:B0
; indirect data load target
0x00867B|$02:$866B:B0
; indirect data load target
0x00867C|$02:$866C:B0
; indirect data load target
0x00867D|$02:$866D:03
; indirect data load target
0x00867E|$02:$866E:B0
; indirect data load target
0x00867F|$02:$866F:B0
; indirect data load target
0x008680|$02:$8670:B0
; indirect data load target
0x008681|$02:$8671:B0
; indirect data load target
0x008682|$02:$8672:03
; indirect data load target
0x008683|$02:$8673:C0
; indirect data load target
0x008684|$02:$8674:C4
; indirect data load target
0x008685|$02:$8675:BF
; indirect data load target
0x008686|$02:$8676:C3
; indirect data load target
0x008687|$02:$8677:F1
; indirect data load target
0x008688|$02:$8678:C8
; indirect data load target
0x008689|$02:$8679:CC
; indirect data load target
0x00868A|$02:$867A:C7
; indirect data load target
0x00868B|$02:$867B:CB
; indirect data load target
0x00868C|$02:$867C:F1
; indirect data load target
0x00868D|$02:$867D:BE
; indirect data load target
0x00868E|$02:$867E:C2
; indirect data load target
0x00868F|$02:$867F:BD
; indirect data load target
0x008690|$02:$8680:C1
; indirect data load target
0x008691|$02:$8681:F1
; indirect data load target
0x008692|$02:$8682:C6
; indirect data load target
0x008693|$02:$8683:CA
; indirect data load target
0x008694|$02:$8684:C5
; indirect data load target
0x008695|$02:$8685:C9
; indirect data load target
0x008696|$02:$8686:F1
; indirect data load target
0x008697|$02:$8687:93
; indirect data load target
0x008698|$02:$8688:97
; indirect data load target
0x008699|$02:$8689:92
; indirect data load target
0x00869A|$02:$868A:96
; indirect data load target
0x00869B|$02:$868B:F2
; indirect data load target
0x00869C|$02:$868C:9B
; indirect data load target
0x00869D|$02:$868D:9F
; indirect data load target
0x00869E|$02:$868E:9A
; indirect data load target
0x00869F|$02:$868F:9E
; indirect data load target
0x0086A0|$02:$8690:F2
; indirect data load target
0x0086A1|$02:$8691:91
; indirect data load target
0x0086A2|$02:$8692:95
; indirect data load target
0x0086A3|$02:$8693:90
; indirect data load target
0x0086A4|$02:$8694:94
; indirect data load target
0x0086A5|$02:$8695:F2
; indirect data load target
0x0086A6|$02:$8696:99
; indirect data load target
0x0086A7|$02:$8697:9D
; indirect data load target
0x0086A8|$02:$8698:98
; indirect data load target
0x0086A9|$02:$8699:9C
; indirect data load target
0x0086AA|$02:$869A:F2
; indirect data load target
0x0086AB|$02:$869B:CD
; indirect data load target
0x0086AC|$02:$869C:CD
; indirect data load target
0x0086AD|$02:$869D:CD
; indirect data load target
0x0086AE|$02:$869E:CD
; indirect data load target
0x0086AF|$02:$869F:01
; indirect data load target
0x0086B0|$02:$86A0:CD
; indirect data load target
0x0086B1|$02:$86A1:CD
; indirect data load target
0x0086B2|$02:$86A2:CD
; indirect data load target
0x0086B3|$02:$86A3:CD
; indirect data load target
0x0086B4|$02:$86A4:01
; indirect data load target
0x0086B5|$02:$86A5:CD
; indirect data load target
0x0086B6|$02:$86A6:CD
; indirect data load target
0x0086B7|$02:$86A7:CD
; indirect data load target
0x0086B8|$02:$86A8:CD
; indirect data load target
0x0086B9|$02:$86A9:01
; indirect data load target
0x0086BA|$02:$86AA:CD
; indirect data load target
0x0086BB|$02:$86AB:CD
; indirect data load target
0x0086BC|$02:$86AC:CD
; indirect data load target
0x0086BD|$02:$86AD:CD
; indirect data load target
0x0086BE|$02:$86AE:01
; indirect data load target
0x0086BF|$02:$86AF:CD
; indirect data load target
0x0086C0|$02:$86B0:CD
; indirect data load target
0x0086C1|$02:$86B1:CD
; indirect data load target
0x0086C2|$02:$86B2:CD
; indirect data load target
0x0086C3|$02:$86B3:01
; indirect data load target
0x0086C4|$02:$86B4:CD
; indirect data load target
0x0086C5|$02:$86B5:CD
; indirect data load target
0x0086C6|$02:$86B6:CD
; indirect data load target
0x0086C7|$02:$86B7:CD
; indirect data load target
0x0086C8|$02:$86B8:01
; indirect data load target
0x0086C9|$02:$86B9:CD
; indirect data load target
0x0086CA|$02:$86BA:CD
; indirect data load target
0x0086CB|$02:$86BB:CD
; indirect data load target
0x0086CC|$02:$86BC:CD
; indirect data load target
0x0086CD|$02:$86BD:01
; indirect data load target
0x0086CE|$02:$86BE:CD
; indirect data load target
0x0086CF|$02:$86BF:CD
; indirect data load target
0x0086D0|$02:$86C0:CD
; indirect data load target
0x0086D1|$02:$86C1:CD
; indirect data load target
0x0086D2|$02:$86C2:01
; indirect data load target
0x0086D3|$02:$86C3:84
; indirect data load target
0x0086D4|$02:$86C4:84
; indirect data load target
0x0086D5|$02:$86C5:84
; indirect data load target
0x0086D6|$02:$86C6:84
; indirect data load target
0x0086D7|$02:$86C7:02
; indirect data load target
0x0086D8|$02:$86C8:84
; indirect data load target
0x0086D9|$02:$86C9:84
; indirect data load target
0x0086DA|$02:$86CA:84
; indirect data load target
0x0086DB|$02:$86CB:84
; indirect data load target
0x0086DC|$02:$86CC:02
; indirect data load target
0x0086DD|$02:$86CD:84
; indirect data load target
0x0086DE|$02:$86CE:84
; indirect data load target
0x0086DF|$02:$86CF:84
; indirect data load target
0x0086E0|$02:$86D0:84
; indirect data load target
0x0086E1|$02:$86D1:02
; indirect data load target
0x0086E2|$02:$86D2:84
; indirect data load target
0x0086E3|$02:$86D3:84
; indirect data load target
0x0086E4|$02:$86D4:84
; indirect data load target
0x0086E5|$02:$86D5:84
; indirect data load target
0x0086E6|$02:$86D6:02
; -> $02:$A201: Map ID #$6D: Moonbrooke (prologue)
; external data load target (from $0F:$E49B)
0x0086E7|$02:$86D7:01
; external data load target (from $0F:$E4A0)
0x0086E8|$02:$86D8:   A2	; $02:$A201; Map ID #$6D: Moonbrooke (prologue)
; Map ID #$34: Charlock Castle B1/B2
; indirect data load target (via $81BB)
0x0086E9|$02:$86D9:0E 0E 48 E2 80 E2 5C 79 AB 2A 04 F0 5E 9E 53 43 3E CB 1E F1 C3 A2 7E 61 D6 76 64 E9 B1 AC CF 6A 04 51 A5 02 A5 8A 02 EF BA 51 62 11 66 A1 16 6F BD EB 14 AD F9 67 3C 69 F8 7E 65 DA 17 77 29 89 00 2D 15 22 65 3C A5 48 70 0E 45 DE 19 68 10
; Map ID #$35: Charlock Castle B3/B4-1/B5-1
; indirect data load target (via $81C3)
0x008738|$02:$8728:0C 10 48 E0 5E AB E4 99 41 42 EF CB BE 15 C6 6A 71 14 1D 1D 1E 4E 0B 5E C5 B2 7D 2B 98 1F 65 89 E6 3A 0F 22 33 8D 6D BC 12 EB 7E 14 25 AC 95 A0 07 90 94
; Map ID #$36: Charlock Castle B4-2/B5-2/B6
; indirect data load target (via $81CB)
0x00876B|$02:$875B:0C 0A 48 07 80 40 0A 00 50 0A 00 E3 BA AC AB E2 81 40 28 14 0F 26 5B 6D CB 1E 37 53 94 19 4A 27 BB 53 A2 02 51 2D
; Map ID #$32: Sea Cave B4
; indirect data load target (via $81AB)
0x008791|$02:$8781:12 12 48 22 95 DA 55 95 4C 95 61 0C 3C 21 56 3D C6 AD 2F 0C 87 82 2D 8C F1 12 A5 2B 7E 4E 1A 0E 86 49 67 2B 26 7E FB 9C 33 3C BD 27 C3 3D CF D1 1F C0 F7 29 E8 DA B2 F4 F9 05 DF 01 AB 2C F1 BE 05 6B CD F0 00 53 5B E6 BE 59 71 2F AE 2C B2 F9 67 80 35 3C E9 04 A7 4D D3 A7 9A 79 39 7F 2A C2 B8 73 10 E5 4C EF A2 F5 06 C0 D3 59 3B 5D EF 0D D6 3E 43 9F F0 B9 74 31 4C 28 38 D6 6B F2 6C 4A 62 7B AB B6 90 64 4C D1 A6 37 06 F5 E4 9B F7 7E 01
; Map ID #$33: Sea Cave B5
; indirect data load target (via $81B3)
0x008822|$02:$8812:0E 08 48 E1 8B 49 65 44 59 E4 89 62 87 81 85 82 35 26 90 B0 26 A1 2C F4 56 FC B3 D3 C5 09 83 AE CE C8 00 F2 E6 4A 62 44 EF 14 06 40 E7 81
; Map ID #$02: Midenhall 2F
; indirect data load target (via $802B)
0x008850|$02:$8840:0A 0A 90 50 11 76 0F 92 8A B2 55 F3 A2 C8 3C CE 49 84
; Map ID #$04: Midenhall B1
; indirect data load target (via $803B)
0x008862|$02:$8852:06 0A C5 28 46 4E 08 B4 76 01 29 D4 66 AB 35 F3 5D BA A4 32 8C F1 19 23
; Map ID #$05: Leftwyne
; indirect data load target (via $8043)
0x00887A|$02:$886A:18 18 C1 08 25 92 89 81 AB 8C 39 33 41 B7 F2 7B A2 55 78 5E 0B BE E0 F6 70 F4 16 3D 37 CF E0 D3 C2 25 D9 F1 49 2F 44 0A CE 65 86 FB 8D 55 47 17 00 36 5F 4C F3 83 19 BE E5 D9 5F D1 CD 3F 00 A2 51 9A 84 26 2B 1E ED AD A3 CE 89 86 5A 39 17 91 A7 25 95 82 CB 1A 11 E9 62 A3 C5 78 48 F8 43 23 6F BD E1 66 DC 51 45 69 E5 E5 E2 45 14 14 15 57 8B C5 45 95 65 17 8C 5C 80 80 60 88 79 01 03 8F 00 00 80 00 00 40 00 00 20 01 D1 8E 00 80 0F 2D 91 59 18 4B 16 CC 65 80 AC DD 29 B6 9B C8 77 76 0D EE 00 BD 60 3F 38 7B C6 EB D6 E6 E3 54 33 E3 C6 94 A1 C1 98 32 C0 10
; Map ID #$06: Cannock
; indirect data load target (via $804B)
0x008932|$02:$8922:1A 1A C3 00 25 8B A5 A9 D0 3C 24 95 29 02 04 08 92 9E 06 78 40 BA F0 20 5E 75 A5 9E 5A 53 D5 05 0A 0B E0 D0 20 27 4E A4 19 6E A8 BA 94 56 4B D4 76 74 15 2A CB 9F 62 EF B9 A7 48 59 65 B3 C3 4F DE 46 4F 2B 6C 79 2C 2E 9F 2C B6 79 F8 4B 1E 16 9F 54 A0 34 02 8A 34 F0 F1 40 37 C6 BC 03 40 C5 FA 03 3E BC 14 0D F0 AC 02 28 14 05 02 05 03 40 D0 2F BF 00 4F 7A F4 E7 91 1C B8 02 8A 6B CA 7F 0C 6C B1 AA 6C 1F BD 44 A2 CB 79 DC 63 37 89 23 F1 B3 1A 87 42 82 79 9D 12 29 A1 C3 76 20 5E D2 0D E5 91 A5 28 24 4D 8C 46 07
; Map ID #$07: Hamlin
; indirect data load target (via $8053)
0x0089DC|$02:$89CC:18 18 C6 08 24 CF 4D 01 C4 BC 82 08 27 1F 7B 7D 27 25 C0 71 AD 2C 08 4B D1 0C 86 5F 04 AB 25 E7 80 4B 29 14 AF CC 10 D1 B3 A0 04 CF 01 96 2D 9E 00 02 02 67 96 13 3E CB 07 24 CB 7D CB 02 9C F8 E4 2C FD BA DD 3D EC DE A0 91 32 16 92 C3 6B C9 9E 0D A1 F3 3C 36 87 A4 F0 0B 06 E7 A9 C2 BA AE 8E AA DF 3B 4A F7 13 22 09 1B 20 58 30 57 D7 EB 69 F9 E3 43 C2 CF 94 28 51 AA 78 28 AD 3D 3A 37 C0 74 5B 82 39 B0 04 E6 79 6F A0 86 78 81 11 39 21 D0 E0 89 08 71 15 A5 84 19 1E 42 59 C5 EA 40 E4 65 2A B8 B4 C8 44 F2 D8 B5 8B 84 B1 0C A7 13 6F B0 DE 0D D9 5D 01 D9 C1 98 FF 90 66 72 70 56 C9 0B D8 63 BB 9E 74 A5 1A 8B 41 93 80 80
; Map ID #$08: Hamlin Waterway
; indirect data load target (via $805B)
0x008AAA|$02:$8A9A:08 08 C4 28 48 78 30 0D F8 3D E0 12 95 A9 4B 26 BD 3C 87 8F B1 7C DD 23 53 6B CD 10
; Map ID #$09: Moonbrooke
; indirect data load target (via $8063)
0x008AC6|$02:$8AB6:14 14 C8 00 88 05 97 7C 01 B4 4D F7 80 2E F8 00 6F 97 12 AD 9B E9 77 DE DF 7E 0C 09 34 64 A4 F0 55 EC 75 38 67 B9 87 A5 E1 D0 BC 70 88 41 9E AA E6 86 A7 81 9C 72 A7 82 DD 1D DB A9 05 A5 42 53 41 E0 05 05 C4 A0 DF 3C 08 38 DA 0B C4 19 06 3E 97 04 A3 55 28 8C F0 82 C4 0C 3D 46 3E 8D F2 CB 28 89 E7 82 BF 21 87 C9 38 EF A4 F5 B2 DA 6F 4E 8F C9 B9 2C 74 37 4F 2F 09 32 F1 1D 4E 15 09 D6 BD FD BB A5 75 1E C9 DE 7C 66 E9 DF 7C 0B 63 64 EC E7 9B F1 96 67 CF 86 B3 49 8C B2 53 24 68 31 9C 88 4E F8 12 52 B7 6B 4C 6F 0E AF AC 2B 5A 2E 85 99 C9 5D 59 0E C2 82 C0 66 0F A3 EE 82 41 EE 14 C0 E5 DA 0D 4B F2 96 0B 59 17 DF CA B9 3F 74 ED 44 80
; Map ID #$03: Midenhall 1F
; indirect data load target (via $801B, $8033)
0x008B99|$02:$8B89:18 18 C1 00 39 0C 51 3A 18 01 25 B3 C0 AD 24 73 47 E0 74 37 27 24 BB C3 51 82 B2 CA 4B 39 A9 40 9E 11 43 94 00 B3 A7 95 5C F9 42 8A 15 AB EE 11 C2 8D 19 41 F4 80 B0 10 31 BE 8D 03 CF 78 36 BC 68 B0 60 82 3C F0 01 40 68 51 58 79 E0 1A F0 14 0A 06 BE 06 B3 DE E5 61 51 78 F5 CB C9 DC AF 37 B6 BB FB BF 5B 64 27 49 89 E9 39 8C 95 C9 8C EE 33 A9 A1 F5 3C 6E EE 6F 5E 19 92 C3 12 D8 6B 86 F8 72 33 11 48 61 38 BD C2 29 2F B9 27 E1 F1 42 94 74 53 C6 46 02
; Map ID #$0A: Moonbrooke B1
; indirect data load target (via $806B)
0x008C2F|$02:$8C1F:06 07 C5 00 58 04 1E 22 A3 09 1B EF 2F 30 BF 2F 43 77 A4 16 E6 71 0C 62 04
; Map ID #$0B: Lianport
; indirect data load target (via $8073)
0x008C48|$02:$8C38:1A 1A C1 08 44 28 33 A4 73 63 DC 11 6F C3 30 58 F2 8E C5 6A 9A 3D 8C 13 39 88 41 B1 48 02 6F 53 2C 37 44 2B 43 3C 9D CA 0A EC 48 6B ED 17 22 A1 B5 1B 69 29 73 DD 0D 60 FD 64 07 4E 99 D1 E8 E5 E2 24 BC D8 A9 C2 CC E5 CF 74 9D 3F A0 79 24 35 3E 6C F7 41 42 A1 2E 7B 8E B9 78 F5 86 D7 B9 98 96 CD 59 66 FB D1 73 DC 34 AB 12 D6 F9 04 AF 2B 12 6B CF D3 5C 55 78 58 48 41 02 55 80 60 83 0F 12 A8 78 C0 F3 1E 10 18 23 C7 52 F8 00 20 00 30 8A 68 CF A5 F0 A2 F8 00 80 C1 A3 09 F5 4F 17 C0 60 15 E0 C4 F0 1C A4 A4 47 3F 42 96 22 CA B2 85 95 65 89 4B E5 B8 34 96 DF 94 D3 CD 08 1B 8E 1A 49 AC 7C 3E 2F 80 4E EC E9 8D 4F 15 98 21 F4 2B 6E 71 34 39 4A 09 09 AA 9A DC 8D 4F C4 70 40
; Map ID #$0C: Tantegel
; indirect data load target (via $807B)
0x008D27|$02:$8D17:1E 14 C1 08 04 4B 52 15 6A 1A 47 B3 D5 02 08 95 6B 79 64 B1 0D F6 17 C6 87 86 9F 84 A7 9D 18 AE 0E B3 C3 43 C8 24 B6 71 B7 2C 9C F0 C5 E8 85 59 2F 49 6A F0 6D B8 32 DC 70 4D F7 83 A5 51 7A 2D D7 9E 91 4B CB A2 5E 4F C4 E4 95 4E 05 B7 14 B1 C3 08 E0 F4 71 E3 2F 29 9A FE A8 60 C6 09 81 D6 2D 5D 0D A2 A2 B4 4C 5E A7 05 9E 59 08 11 13 8F 3D 02 08 C3 C4 E4 38 00 40 39 4A 80 28 00 AD 41 E1 18 28 6B 3C BE 9E 55 E4 75 50 A8 34 D1 54 F2 8F 82 2B 85 34 A8 20 C1 A3 1E 2F 80 A3 5E 3C 06 78 11 82 78 C6 F9 3D 78 FD 0A AF C4 CC 57 CC B2 19 6F 98 E3 72 6B 62 B1 1C CE 41 0D DC D3 FA 55 9D D9 D9 A5 03 77 74 B4 58 27 92 CB 10 94 6E 92 73 38 16 B9 B3 8B BE E8 B3 0D A7 89 61 77 E2 58 13 5E 0F 13 B1 A2 4A 56 42 0A 40 92 14 64 16 C8 82
; Map ID #$0D: Tantegel Town 2F
; indirect data load target (via $8083)
0x008E18|$02:$8E08:08 08 D0 28 04 9C D3 76 3F 65 BC DE D1 DE 23 3C 83 39 86 10
; Map ID #$0E: Tantegel Castle 2F
; indirect data load target (via $808B)
0x008E2C|$02:$8E1C:08 08 90 50 12 76 3F 6B 70 E9 24 F3 3B 4C 20
; Map ID #$0F: Osterfair
; indirect data load target (via $8093)
0x008E3B|$02:$8E2B:18 18 C1 00 24 B3 46 40 C5 C2 9C 80 CC FB 09 59 3E A3 69 E2 16 F4 39 B9 EB 54 2C A9 74 59 5E 25 98 CB F4 40 C9 56 5F 7B F8 38 B4 44 8A 0B E3 E2 14 44 F1 D0 DF 9E 12 26 57 14 4B C1 D1 CA 57 37 03 92 85 C9 12 A0 9F C6 62 B7 4C 5E AB 9D D9 C2 7B F4 1A 64 C6 F8 91 CC 5C 91 6F 94 A1 65 57 C2 D1 FE 20 94 06 99 F5 17 DC EF 80 00 02 80 00 01 40 00 00 A0 68 C2 7E 9A 79 01 88 9E 06 61 E4 3C 45 40 4D 01 8A 8C 5F B9 F4 F5 F2 35 28 A6 8B F1 53 C1 E1 67 8B CD 42 42 27 E2 2E 19 06 E2 21 BB 81 BF FA A9 9B 82 22 55 3C D6 3F E7 11 9D FC 3F 33 AB C3 C3 A6 E1 0B 00 E1 93 7E 8D 07 29 41 58 FD 00 04 44 48 8A A8 AD 5B 12 DE 18 C4 9C 39 89 2C 21 6A 11 25 E7 72 0F 26
; Map ID #$10: Zahan
; indirect data load target (via $809B)
0x008F14|$02:$8F04:18 18 C1 08 05 A2 7B 94 0D 65 41 A1 D9 2A D2 54 E3 3F 48 A1 09 9E 84 02 C0 44 3B 1B 41 CA 9E A9 45 8B CF A0 9B EE 35 82 EF A2 AC BC 9F 83 9B 89 FC 3A 1A 3A 44 E2 9E 00 00 40 00 00 40 00 0E 5C D6 FB 81 3C 00 0F 0B 45 6A C2 5E 8E 15 84 BC D3 28 20 20 9C 7B 42 08 08 89 C7 D0 58 B1 65 2A 10 21 29 60 02 52 C2 04 22 96 54 A9 5C B1 E8 10 46 3C 4F 04 B2 51 DA C2 C5 D2 DC B3 D7 7D 33 D7 7E 0D A3 D3 3E CC FB 33 F7 DE 76 6F 26 7E FB CB 67 1E 72 E7 E1 BD D4 25 8A 86 B0 D3 11 0A 62 36 19 0D CC 4D 04 17 9B C7 E4 93 78 88 92 45 49 67 88 29 40 11 F1 05 08 F1 88 98 68 0E
; Map ID #$11: Tuhn
; indirect data load target (via $80A3)
0x008FCF|$02:$8FBF:14 20 C3 18 06 32 97 59 4A 69 5A 97 49 3E 52 90 D4 88 10 09 A6 7A C5 BE E7 E0 58 B2 59 60 32 59 7C 51 38 42 D6 79 6A 67 95 7C 0D 28 C4 8E 7F 44 B2 A1 2D 19 F7 2F DE 5C 26 7E FB 90 BC 67 AA 9E 0A 4A F2 C5 86 78 2C 0B 2C A0 B2 A5 01 51 60 32 3E D7 9F 8F E5 E1 69 48 4B 12 C2 0E 8C B5 28 52 AB 9E 7C 41 08 72 4A 8A 62 3E 80 A5 2B 85 20 AA F0 90 A6 0B 91 0B 65 B3 DC 82 24 A1 2A 14 46 86 47 AD 96 CF 42 CB 28 2C B3 C4 F1 26 A4 8D D0 FD 15 E4 81 5C 3C 4B 90 0C ED F9 AC 51 19 87 A3 0A 56 51 E7 1B 7E 0B
; Map ID #$12: Tuhn Watergate
; indirect data load target (via $80AB)
0x009075|$02:$9065:06 06 C2 28 44 77 0E 50 EF 21 B2 57 68 A9 12
; Map ID #$13: Wellgarth
; indirect data load target (via $80B3)
0x009084|$02:$9074:0A 0A C6 10 68 F0 26 79 C1 91 33 C9 4B 09 9E 75 DC 4C F3 C2 A8 E2 00 9C E9 E3 35 E6 76 E0 F9 39 70 65 2A 38 83 6E 0A
; Map ID #$14: Wellgarth Underground
; indirect data load target (via $80BB)
0x0090AB|$02:$909B:18 19 C5 00 5A 42 02 E1 BF 01 86 14 78 7D 18 C1 3C 60 9F 58 D4 28 06 30 68 DF 81 9E 40 53 28 3E 84 01 2C 12 F8 2F 87 D1 A2 9E 03 5A 37 E2 79 7C 0B A4 F0 0A D3 7E 6B D3 CF 78 56 97 C5 3D EF 0F 0F 08 F0 89 0C 68 2E 8C 6A 06 60 10 A0 AD 1E 74 71 AD 01 77 C0 0A 02 80 78 39 6A 54 55 38 7C 02 4F 05 09 8A 00 00 A6 05 05 33 C0 10 03 EC 0A 00 16 0B 43 7E 06 41 F4 00 5F 0D 2D 80 59 56 51 65 5F 3F 38 2B 9C 45 CF AE E7 CB 7E C9 96 97 A4 F2 5A F6 6B 10 F1 04 8F 0E 6F 66 F5 70 D7 01 9B 00 E8 38 43 29 4D E2 2F 0B 1D E2 E3 1C 59 C5 43 77 27 30 B3 8B 62 70 E0 86 11 99 CE A1 7B 68 2C A5 06 07 B4 25 1D 92 25 1E 1A 03 89 60 C4
; Map ID #$15: Beran
; indirect data load target (via $80C3)
0x009178|$02:$9168:1A 1A C3 20 04 1B 14 56 8A 5F 50 96 31 29 54 65 C4 7A D8 02 6D 62 F9 9D 2C 5B 65 17 5A 50 A0 94 8A C5 65 45 9C 86 49 3F 6A 81 C8 EC 38 33 17 83 A1 16 94 40 B6 4A B2 5F E8 AE A3 0D 07 9A CA 86 7B 4F 7E 4E 67 59 FA 5D D6 12 F8 19 21 15 C5 BA AC 8B 62 DF 70 DE 3F 47 84 E8 36 84 49 B4 F0 B4 08 90 20 25 58 20 8C 3C 95 51 CC 18 E4 6C 71 FD AC A5 97 94 19 41 43 7C B2 C1 54 4B 2B 7D C2 8A A5 14 BC ED 22 02 0C 3C 20 21 55 7F 37 0B 66 0E 61 87 CF 92 F0 C7 16 71 24 07 E2 51 A8 47 9F 91 C7 A1 D0 7A 21 8F 22 31 78 9E 20 12 CA 71 7B 80 37 6F B9 2A 9B 01 E2 B7 A8 D8 07 41 C1 7C 1E 6C A5 85 28 04 A5 37 E3 E4 56 FE 13 CD FC 2F 97 A3 38 F2 6A
; Map ID #$16: Hargon's Castle 1F
; indirect data load target (via $80CB)
0x00924B|$02:$923B:1A 1A C8 40 04 37 A8 50 D9 6A C1 DC 31 0B CD 6A F9 35 AB 8C C0 81 0A 54 09 C5 59 62 58 32 C4 B2 A8 12 A7 83 22 AB C2 28 05 96 72 B4 AA A0 15 65 8D 1A AB E4 AA 80 12 CB F2 C1 2C 4B 2A BC 32 C6 48 AB 2F 28 01 5B 28 D5 69 E2 A0 8B B6 FB 2F 34 03 26 9A 0C 1B F0 4B 67 B9 22 54 68 CF A2 C9 7D E4 65 05 00 EA 79 1B 73 DE EA 43 19 37 DE F4 24 38 0F D3 26 74 28 9C E4 67 14 E0 41 04 3C F4 11 40 0A 00 A0 1F A4 3A 6A 0F 46 F4 1C A6 28 E3 29 6C 75 0F A4 DA 60 67 3D CC 6D 56 D8 0F D7 AD 78 35 A4 E3 A5 79 3C 71 4A 69 21 09 CC 8E 27 8A 62 80 E6 CA 08 9C 70 21 81 E3 41 F4 6F 3D C1
; Map ID #$17: Hargon's Castle 7F
; indirect data load target (via $80D3)
0x009309|$02:$92F9:10 0E CD 69 14 47 38 02 87 57 DB 85 AE 12 CB 28 59 65 05 96 50 B2 CA F3 F2 28 82 79 60 00 5B 63 E1 75 60 02 D6 06 AF C4 6D 46 F6 9D 97 87 25 9B 8C EF 46 13
; Map ID #$19: Shrine NW of Midenhall
; indirect data load target (via $80E3)
0x00933D|$02:$932D:0A 0A C5 B0 04 AD 80 93 FD 68 51 42 DF 0B 00 40 1C 89 20 8F 25 41 D1 3C 6C B2 3C 86 C8 81 34
; Map ID #$1A: Shrine SW of Cannock
; indirect data load target (via $80EB)
0x00935C|$02:$934C:08 0C C6 00 58 16 B2 8D 78 2C A1 65 D0 78 6B C2 CB E6 69 82 AF 96 99 6A A1 57 C6 6F 49 F5 43 77 FB 18 0C 38 62 96 45 F1 D8 EF F2 81
; Map ID #$1C: Shrine SE of Rimuldar
; indirect data load target (via $80FB)
0x009388|$02:$9378:08 08 C5 00 58 81 00 9C D2 B1 2C 4B 12 FF C7 F9 3E 72 9C A4 38 08 12
; Map ID #$1D: Shrine NW of Beran
; indirect data load target (via $8103)
0x00939F|$02:$938F:0A 06 C3 00 3B 20 10 03 C2 DC 22 8B 28 2C A2 9E 4F 5F 67 6C B7 3E F9 62 21
; Map ID #$1E: Shrine NW of Zahan
; indirect data load target (via $810B)
0x0093B8|$02:$93A8:0A 06 C1 00 18 04 01 03 C2 DB A2 8B 28 2C A2 9E 5B 7B 98 9E D6 C6 B1 32 21
; Map ID #$1F: Rhone Shrine
; indirect data load target (via $8113)
0x0093D1|$02:$93C1:08 08 C4 00 4B 80 04 03 C2 D7 C4 04 73 21 2C 12 C7 8F 95 15 7C B4 5A 77 B9 E6 EA D3 C9 FE 12 CC 21 C0 40 98
; Map ID #$20: Shrine SW of Moonbrooke
; indirect data load target (via $811B)
0x0093F5|$02:$93E5:08 06 C5 00 5A 90 1B F0 7F 28 48 78 10 60 67 DF 79 6A 70 53 C8 63 69 13 C8 33 C2 27 8C 49 4A 15 E4 C0
; Map ID #$21: Rhone Cave Shrine
; indirect data load target (via $8123)
0x009417|$02:$9407:08 08 C8 01 7B E5 54 82 B5 E4 F3 CA 72 85 8B CA 14 28 5F 27 B8 43 A8 81 4A 95 A4 CB
; Map ID #$22: Shrine S of Midenhall
; indirect data load target (via $812B)
0x009433|$02:$9423:0A 06 C2 00 58 08 14 50 AB 7C 25 24 EC 07 E9 68 19 E2 C1 27 C0 4C A5 03 61 06 BF 88 1C
; Map ID #$23: Rubiss' Shrine B1
; indirect data load target (via $8133)
0x009450|$02:$9440:04 04 C4 01 65 68 86 03 3F 18 45
; Map ID #$24: Rubiss' Shrine B2
; indirect data load target (via $813B)
0x00945B|$02:$944B:02 02 C4 01 0C 19 E3 09
; Map ID #$25: Rubiss' Shrine B3
; indirect data load target (via $8143)
0x009463|$02:$9453:02 02 C4 01 0C 19 E3 09
; Map ID #$26: Rubiss' Shrine B4
; indirect data load target (via $814B)
0x00946B|$02:$945B:02 02 C4 01 0C 19 E3 09
; Map ID #$27: Rubiss' Shrine B5
; indirect data load target (via $8153)
0x009473|$02:$9463:02 02 C4 01 0C 19 E3 09
; Map ID #$28: Rubiss' Shrine B6
; indirect data load target (via $815B)
0x00947B|$02:$946B:02 02 C4 01 0C 19 E3 09
; Map ID #$29: Rubiss' Shrine B7
; indirect data load target (via $8163)
0x009483|$02:$9473:06 06 C2 28 04 77 09 27 38 5A 51 6F E7 BC FE A9 0C 72 04
; Map ID #$2A: Shrine W of Zahan
; indirect data load target (via $816B)
0x009496|$02:$9486:02 02 C5 01 0C 27 E4 CA 53 26
; Map ID #$1B: Shrine NW of Lianport
; indirect data load target (via $80F3)
0x0094A0|$02:$9490:06 06 C5 28 05 37 22 B3 C8 63 99 CE 27 AA 4C A5 02 32 44
; Map ID #$18: Charlock Castle B8
; indirect data load target (via $80DB)
0x0094B3|$02:$94A3:14 14 C4 20 06 33 79 45 50 C4 62 89 87 A9 5C 24 8A FD 2B E0 88 AC D8 59 69 C5 3C A4 92 56 78 1A EF 2B A2 D9 CC 71 52 92 F8 2B 1C 25 74 9C 74 00 47 39 D5 97 93 69 3C 44 84 13 9B 4B A5 73 F7 66 9D F0 62 77 6E B2 1F 52 44 4F 1D 4D F3 C2 D2 A8 22 55 96 04 B0 4B 81 2C AB E1 2C A3 19 2F 92 CF A1 65 1A 78 2C EA CC 96 25 96 25 94 02 CB 12 CB 12 CA 58 4A 59 62 59 62 59 7F 26 63 FE 86 43 C0 99 D7 46 48
; Map ID #$3F: Cave to Rhone 6F
; indirect data load target (via $8213)
0x009537|$02:$9527:14 18 48 E0 B9 E0 D4 BF 2C 6B D0 D7 C4 BD D7 01 AF 87 71 52 90 64 55 7D B3 5E 9D 17 D0 CF AE 94 63 25 7D 74 DF 08 6D C9 5E 7A 31 EA C3 EE 3E C9 4E 08 CB 80 DF 82 67 D9 9F 5E E1 BE 13 3E CB 65 9A A9 15 E9 67 05 F3 42 7B 8D 11 CB 7C D4 F7 46 11 10 F1 5D C0 21 CB 10 E4 00 70 C8 39 F1 A7 47 07 87 D4 8F 68 93 4E 10 E2 58 B2 B0 B5 9E AA 47 EE 28 F6 90 9D D7 51 B4 6B 10 02 38 AC F7 1E A8 1E 48 28 94 67 35 D8 6B D8 94 B8 AF 8E 90 B5 E4 73 DD C6 09 58 4B 08 21 AF C9 DA 53 48 9D 53 35 17 1B EC 30 0E 17 86 E1 D0 ED CF 31 FB 73 48 65 9D 3E 13
; Map ID #$2C: Lake Cave B1
; indirect data load target (via $817B)
0x0095EA|$02:$95DA:10 10 48 07 B3 E1 1D F7 A0 20 67 DD 00 B4 86 78 82 2D 41 01 E0 14 15 22 8A 08 37 E6 14 3C 13 C5 1A 2E 37 47 1E 2A 72 F2 E5 CC 29 CE 83 A5 24 1D 84 85 FE 5B C0 1E 82 4C 78 32 BC 49 E5 F9 F6 92 9C 8C D7 F8 56 0A 44 24 F4 68 21 C3 2B F2 27 03 D1 00 53 56 23 C1 4A CD F7 F8 3C 26 6D 9D EB A0 3C
; Map ID #$2D: Lake Cave B2
; indirect data load target (via $8183)
0x00964B|$02:$963B:0E 10 48 E2 80 E0 00 6B 40 08 78 F3 C3 4B AB D4 32 72 A8 9C 7E 2F 82 D1 C9 3A 21 51 B7 F2 78 6D FC 9E ED 91 4C 1A 97 F1 9E B7 C3 5E C6 7E FB C6 92 7A 3C 96 CF 2F 1B AD F2 D6 04 F2 62 A4 39 D0 93 71 28 2D E9 C3 29 52 16 A0 A0 05 B8 58 D7 9A 75 C2 74 CB AD F1 1B 1D F6 A3 54 1E 3F 1F AB E3 FA 5F 22 03
; Map ID #$2B: Cave to Hamlin
; indirect data load target (via $8173)
0x0096AF|$02:$969F:06 16 48 E0 41 DF 09 39 83 F0 A1 41 D0 00 03 F8 0C 08 F3 3C F3 98 96 C8 01 40 1A 03 08 DE 80 80
; Map ID #$2E: Sea Cave B1
; indirect data load target (via $818B)
0x0096CF|$02:$96BF:0E 0E 48 07 AA A5 15 22 82 80 05 2C 94 1C 03 A9 44 C1 40 3C 5B E2 A9 05 1D 21 AB 9C 13 9D 11 CF 20 A1 06 37 E2 81 EF F0 0B A3 E3 41 AD 00 B1 2A B7 C1 09 D1 D3 C9 A8 8F 1E 19 C2 85 1B 89 06 33 1A 00 5C 76 3E F0 A9 C3 A1 14 B7 93 32 78 18 10 31 4D CF 91 DE 3B 20 10
; Map ID #$2F: Sea Cave B2
; indirect data load target (via $8193)
0x009727|$02:$9717:12 14 48 07 AB D8 04 00 00 20 00 04 01 8A 90 5A 82 A1 69 02 D2 11 6A 5A 10 87 80 08 07 40 35 5F 15 31 C2 CE 9E 67 4E 34 00 4E 43 27 1A F7 1A 30 E3 16 21 AD 13 C7 9C 3E 5A 79 A7 B8 88 A9 CA 51 4E 6C 22 FE 6C 0C 5E 02 F0 65 4E 20 07 38 24 B2 F3 FA 59 D3 39 5D 53 57 C7 D0 78 EF 07 DB DB 1F 54 E2 BC 27 8E 09 88 8B A3 B6 F9 4E 14 D1 31 22 90 6D AB 17 49 96 5C ED 05 91 75 91 55 63 99 02 98 CE BD 27 E8 90 DE 35 06 BD 12 64 4E 82 31 8B F9 0F 34 E7 6C DB A1 75 BF 39 E7 A0 20
; Map ID #$30: Sea Cave B3-1
; indirect data load target (via $819B)
0x0097C4|$02:$97B4:0A 08 48 E0 9E 84 25 94 A2 92 9E 49 F0 6F A0 4E 1E 8F C5 86 20 BC 52 7C 12 A9 67 88 C2 80 4E 49 E9 21 AB D0 81
; Map ID #$31: Sea Cave B3-2
; indirect data load target (via $81A3)
0x0097E9|$02:$97D9:10 10 48 E2 BE 42 0A 0E 08 84 05 00 54 78 6E 45 5A 86 7B DE 39 12 14 5A 9B F9 EE 17 90 4F C7 B5 BF 33 E5 2C 2B 20 9E 08 66 6F C0 14 00 55 25 95 B2 C6 7B E6 F9 79 71 29 67 65 8C F1 08 08 08 47 EC BA B6 CE 6C A0 98 D7 DC 43 8D 0A 6F 0A 65 F2 56 9F E4 CD 56 E9 17 A9 D1 21 07 67 D2 41 79 EF B8 95 FF A7 8D 01
; Map ID #$37: Cave to Rhone B1
; indirect data load target (via $81D3)
0x00984F|$02:$983F:0A 0A 48 E0 45 D8 27 27 43 9A E1 17 B0 52 6E
; Map ID #$38: Cave to Rhone 1F
; indirect data load target (via $81DB)
0x00985E|$02:$984E:0C 0C 48 E0 A1 55 95 62 C4 AB 22 59 5B 2F CB 2B 65 59 F3 67 CA 95 BF 25 96 25 5F 26 1F 9B ED 43 C5 B4 FD 5F 7D 0E 39 9E E8 39 76 A3 B3 84 C6 C1 47 94 D8 3C 70 51 31
; Map ID #$39: Cave to Rhone 2F-1
; indirect data load target (via $81E3)
0x009895|$02:$9885:1C 06 48 E2 95 50 00 00 04 78 27 04 67 E9 B7 F2 7B C1 9F A6 DF C9 EF 06 7E 9B 7F 27 BC 19 FA 6D FC 9E F0 67 E9 B7 F2 7B C3 C0 73 23 54 F0 04 78 50 15 91 20 CB C3 42 D8 C8 88 34 15 15 6D 3E 07 84 61 B8 96 2E 0E 2B 6B D9 B6 1D 73 57 01
; Map ID #$3A: Cave to Rhone 2F-2
; indirect data load target (via $81EB)
0x0098E3|$02:$98D3:1C 06 48 E2 95 50 00 00 04 78 27 04 67 E9 B7 F2 7B C1 9F A6 DF C9 EF 06 7E 9B 7F 27 BC 19 FA 6D FC 9E F0 67 E9 B6 AF BC 79 38 BC A8 87 32 35 4F 1C 07 85 01 59 12 0C BC 34 2D 8C 88 83 41 51 56 D3 E2 F8 96 1B 84 60 60 D5 F5 CD 87 66 DA F8 A0 10
; Map ID #$3B: Cave to Rhone 2F-3
; indirect data load target (via $81F3)
0x009934|$02:$9924:0C 0A 48 E0 90 0B 40 BA 79 43 81 46 3F 4F 06 3F 4F 3D 93 8D 1A 9C 50 98 01 E3 F5 72 F1 E1 CF E8 B4 BE 12 65 88 70 A0 1A 09 79 C0 8B 6E A3 43 2D 2C 16 00 79 49
; Map ID #$3C: Cave to Rhone 3F
; indirect data load target (via $81FB)
0x009969|$02:$9959:14 1C 48 E2 9F 3C 25 8A D1 67 CA 25 94 43 7C 64 B2 A2 B7 E5 94 78 E2 90 0B 07 15 81 86 7D 8B 9E 5C F5 8F 78 17 86 0B 53 75 85 34 4F B4 1C 11 E8 4F 04 4E 86 F4 B9 F6 6F A5 96 37 C5 CF 12 CB 33 D6 C6 C1 F1 65 8C 5F 59 BE 96 5C F5 97 7E 6F A5 84 AE 20 A5 2C A8 B2 CB 38 23 D7 87 7D C7 7E 94 5B C9 4C 96 B7 E2 3D 6D 1D E5 AE 75 D6 05 AA 4C D3 D9 1F 49 34 2C 10 52 20 9E 4E D4 09 50 56 A9 CD 1F B5 19 C9 9F 9A 94 3D 47 DA 52 67 F6 CB E0 FE 41 97 42 B7 1F 7E C3 C2 81 39 16 42 20 46 82 A1 49 D5 33 A6 0A 2E AD 8E 01 97 46 28 4B C4 42 8A 43 C2 A5 8B FA 01 8A C8 BE 59 AC FB E7 36 51 FA 53 9F 99 C8 54 6D 2B 16 65 EC 91 80 FC 00 12 03 8B 8A 42 BB 0D 58 D8 F4 B7 47 D0 34 4C 9B B1 9E F0 4B 82 E4 1E 5E 17 D5 FC 17 C7 CC 98 CD FD 57 D7 4D C4 DF 10 10
; Map ID #$3D: Cave to Rhone 4F
; indirect data load target (via $8203)
0x009A60|$02:$9A50:10 12 48 E0 42 2E E1 4F FC 00 07 88 27 37 8E F5 DF 3B F4 3B 84 98 78 87 0A F0 89 89 7A 45 C6 BE 23 64 5F 91 F2 16
; Map ID #$3E: Cave to Rhone 5F
; indirect data load target (via $820B)
0x009A86|$02:$9A76:12 14 48 07 9F BA 85 37 C0 00 A0 DF 0D F0 05 00 03 7C A6 F8 37 C3 7D D1 DD 04 E8 14 6F CD F4 F4 A2 6A 55 6C 26 0B 1B E4 5B B7 6E 6C BD BF 9C F3 76 A4 D0 78 A0 00 73 8E 71 E6 B6 00 23 EA 5D 01 A5 4B 53 74 4F DC BA 28 51 9E 0E 61 40 75 4A 75 78 00 00 E0 D0 F0 D1 5D 71 E7 4D 73 FA 46 FE DE 1A EB 36 E5 CC 4F 8E F2 0E 31 1E 34 CF 9A 1F 70 F0 32 74 B2 1C 8C 5A C8 14 10 59 12 62 57 8D 5E 42 81 D0 31 60 0B
; Map ID #$40: Spring of Bravery
; indirect data load target (via $821B)
0x009B0C|$02:$9AFC:12 14 48 01 42 67 35 5A C0 3A F3 9E 31 69 74 83 56 59 4B 2C A0 AD B3 C6 CB 2F 81 B5 3C 1B E2 9A 8B 2F 80 01 40 1B E0 0A 00 F0 45 E9 E5 CF FB C7 83 8A A0 80 59 CA 0C 97 8C EA C3 86 78 B2 A5 4A 96 02 AF 3F E4 75 64 22 84 0B 17 FB 2E 35 27 46 21 C2 CA AC A8 01 78 82 46 B1 0B 14 6D 24 F3 C8 B4 23 B3 02 55 F2 A5 65 0C 67 51 3C 6B 76 2E 66 4B 5F 66 B5 A1 2C 68 89 E5 A2 E0 90 9E 0D 93 BB 7A 9E 34 01
; Map ID #$43: Cave to Rimuldar
; indirect data load target (via $8233)
0x009B90|$02:$9B80:04 0E 48 E0 45 C8 98 DE 44 22
; Map ID #$44: Hargon's Castle 2F
; indirect data load target (via $823B)
0x009B9A|$02:$9B8A:0C 0A 48 07 80 20 02 00 40 02 00 E5 0A C2 58 96 12 F8 FA C4 DC 10 A5 3B 41 51 14 6D 01
; Map ID #$45: Hargon's Castle 3F
; indirect data load target (via $8243)
0x009BB7|$02:$9BA7:0A 0A 48 07 8D C9 56 54 20 04 00 83 12 CA 59 5E 08 1E 3D 79 31 A4 31 29 1D A6 E2 8A 00 C2 7A E3 26 FE FF 42 19 CE A8 1A
; Map ID #$46: Hargon's Castle 4F
; indirect data load target (via $824B)
0x009BDF|$02:$9BCF:0A 0A 48 07 9F 22 55 28 CF 1A 14 02 80 50 6F 8A 7F 8F 2A 4E 11 0C 4A D9 BC 0D 62 AD 60 A0 15 86 5C 0E
; Map ID #$47: Hargon's Castle 5F
; indirect data load target (via $8253)
0x009C01|$02:$9BF1:0C 08 48 07 80 A4 47 3D 48 8F 00 03 AD 2F 80 70 10 8B C7 AE 26 38 87 0A 04 D8 90 A7 C6 89 46 66 2D F2 B0 6D 91 7B 5C 86
; Map ID #$48: Hargon's Castle 6F
; indirect data load target (via $825B)
0x009C29|$02:$9C19:0E 07 48 07 90 E9 4B 2A CA 59 D0 14 A5 95 65 2C F1 EA C9 B6 21 89 2F 49 49 14 53 8F 51 F2 82 5E 8F 02
; Map ID #$49: Moon Tower 1F
; indirect data load target (via $8263)
0x009C4B|$02:$9C3B:0C 0C 48 07 81 30 A1 52 28 52 A4 52 A4 52 95 22 8D 78 A7 8A 07 85 9C A1 13 99 73 92 C1 C5 20 F2 62 18 B6 ED BF 6F 45 E0 71 40 A8 29 C1 39 10 72 F4 E1 7C AB 44 78 D6 48 B1 29 10 E1 4C 0F D0 02 90 65 1A 26 AF B3 00 A2
; Map ID #$4A: Moon Tower 2F
; indirect data load target (via $826B)
0x009C93|$02:$9C83:0C 0C 48 07 89 A5 A2 94 0A 48 52 8A 91 55 22 95 BE 0A 91 4A A9 14 57 8A 29 D5 CB 12 F3 3A BC 88 17 C9 8B 68 79 F8 F0 EC 8B 82 D6 77 90 E9 C1 38 50 92 F1 20 85 87 4E 23 CC B2 C5 95 60 88 22 60 B0 34 00 9C 19 56 99 B3 6A 00 37
; Map ID #$4B: Moon Tower 3F
; indirect data load target (via $8273)
0x009CDE|$02:$9CCE:0A 0A 48 E2 A1 82 8A 57 82 C4 28 20 DA 3E 1A 7A 45 73 00 F1 E4 B1 9B 62 6B 77 45 C5 94 E1 40 17 12 1E 29 10 89 0A 9E BA CA C7 C1 06 AF 46 03
; Map ID #$4C: Moon Tower 4F
; indirect data load target (via $827B)
0x009D0D|$02:$9CFD:08 08 48 E2 98 45 3C 15 AA 75 5A 0D FC 09 1E F2 D8 AF 1F AE 91 33 BB 88 63 58 EC 50 DF 26 4F C3 67 2C 09
; Map ID #$4D: Moon Tower 5F
; indirect data load target (via $8283)
0x009D30|$02:$9D20:06 06 48 E2 92 45 3C D3 5A 78 28 44 B9 E5 33 F7 DE 3D 9C E2 68 10 A5 4A 34 34 46 4E 98 26
; Map ID #$4E: Moon Tower 6F
; indirect data load target (via $828B)
0x009D4E|$02:$9D3E:06 04 48 07 8B AA 13 C9 A4 7A C6 44
; Map ID #$4F: Moon Tower 7F
; indirect data load target (via $8293)
0x009D5A|$02:$9D4A:04 04 48 07 56 87 D1 74 29 3A
; Map ID #$50: Lighthouse 1F
; indirect data load target (via $829B)
0x009D64|$02:$9D54:16 16 48 E0 90 40 5C F3 58 0F B0 6A 1E F0 00 0A 6B 03 EC 18 DF 8A 3D BE F0 1A 81 E0 0A 6B 7E 03 5A 37 D0 3E 1E 78 00 05 01 58 FA 31 80 35 2E 2B D6 12 AA E1 2A AE 12 AA E1 9F BF EF 7B C5 F7 90 79 39 5E BD D7 1C 98 B9 E0 A7 0A 8A 73 11 7C 55 06 BF 6B 22 51 EE B0 69 1D 7E 03
; Map ID #$51: Lighthouse 2F
; indirect data load target (via $82A3)
0x009DBF|$02:$9DAF:12 12 48 E2 94 70 0A 0E 96 A2 B8 1D 00 21 00 38 0B 0F 05 1D 16 94 BC CF 12 02 44 4E 9C 60 40 63 05 33 DF 61 2F B9 A6 8B 48 31 2D 5F 0C 2D F2 D6 2C 8C FA 68 24 5B 86 7D F7 86 7A D3 C3 0B 7D E3 CE D9 CB 5D 6B E2 60 3C 45 9A B4 E7 02 E5 7C 7C BC 2C A7 0A F2 9F 20 E2 38 92 B2 85 53 37 D0 28 F4 8B AE 4F BE C6 AB 9D 29 2D 2E 55 46 ED 5E F3 04 10 53 32 62 4D A4 84 96 EE 3A AA 71 83 0B E2 FC 65 9E B3 BE AF E5 DC 97 63 80 AF
; Map ID #$52: Lighthouse 3F
; indirect data load target (via $82AB)
0x009E4B|$02:$9E3B:10 10 48 E2 88 13 B4 12 C6 A3 CE E7 40 51 CD F8 20 3C 08 DA EA 28 8D 08 C0 2D ED 34 90 43 7E 0A 0E 4A D4 96 BB 20 49 A4 B5 7D DF 08 0A 73 F4 90 8A E1 F1 78 33 58 FC B8 78 7E 03 A7 6F 5D FF AB EC 13 F9 F0 3B DC 94 DB 29 8E 17 03 D9 08 2A 12 CF 36 9C 2D 0D 6C 9F 4C 14 88 B0 49 B5 7D C5 69 FA 8E B2 53 19 03 57 06 35 A5 66 3B 6F 4B 60 CF F0 00 53
; Map ID #$53: Lighthouse 4F
; indirect data load target (via $82B3)
0x009EBE|$02:$9EAE:0E 0E 48 E2 B0 04 B2 93 A0 71 04 95 66 96 55 9E 63 E8 78 20 04 25 C0 D5 91 3E 58 A4 AB 61 2D 5F 25 E0 B8 BB F0 95 BE 22 EF B9 C0 38 E5 2D 74 CC 24 F2 61 D8 B6 3D B0 71 7D 48 F4 8D 8F 96 F0 4B D0 14 E7 5F AE 42 87 AB A3 89 48 51 B8 94 27 D1 A0 C6 64 4F 9E 4C C1 5E 95 86 C0 AC C1 23 C1 C0 6B 58 A0 0B
; Map ID #$54: Lighthouse 5F
; indirect data load target (via $82BB)
0x009F22|$02:$9F12:0E 0E 48 E2 83 21 CC 3A 89 4E BB 0A D8 7C 29 09 2A C2 1C 2D 96 12 AC F0 25 67 70 70 82 5B 10 96 F2 A4 A3 64 F8 62 5A BE 68 7A 0E A6 54 E8 9D 29 6F 28 E8 24 E2 91 E3 C3 70 0C 7B 6F DE F9 B2 69 1A 6E A5 DA 76 45 E1 71 92 9C CC FE 09 D7 0A B2 AD 13 04 50 58 46 84 9B 05 0F 57 47 12 84 90 A7 22 8B 80 C5 7A DE 3C 06
; Map ID #$55: Lighthouse 6F
; indirect data load target (via $82C3)
0x009F8A|$02:$9F7A:0A 0E 48 04 85 B2 73 C0 8F 3C 7F 92 C2 58 96 13 8B 91 45 2B 96 14 10 04 B0 84 2D 22 A1 3C 7C 5E ED A7 66 98 91 B2 43 1C 48 31 89 14 28 15 51 F4 6A 83 8C F2 9E 14 2C FD 14 36 09
; Map ID #$56: Lighthouse 7F
; indirect data load target (via $82CB)
0x009FC5|$02:$9FB5:0A 0A 48 07 98 4B 09 62 5E 5D 26 F9 62 58 4B 12 C7 E4 30 F9 D1 E2 B2 DD 1E D1 36 84 30 A2 DF A5 1B 12 DE CA BB 11 13
; Map ID #$57: Lighthouse 8F
; indirect data load target (via $82D3)
0x009FEC|$02:$9FDC:08 08 48 07 91 56 25 EB 75 89 7F 03 1B 5F FF E0 7D 63 29 4A D1 46 D2 5D
; Map ID #$58: Wind Tower 1F
; indirect data load target (via $82DB)
0x00A004|$02:$9FF4:0C 0C 48 07 84 84 10 C3 7D EE 66 13 7C 6F C2 58 97 9C 24 B0 81 84 BE 04 10 9B EF 26 17 9B 6F 45 E0 0A 4E
; Map ID #$59: Wind Tower 2F
; indirect data load target (via $82E3)
0x00A027|$02:$A017:0C 0C 48 07 95 E5 85 34 DF 9E 14 DF 02 CA 69 9E 57 80 A6 99 EA F1 BE 14 F2 60 18 DE B0 3D BF 42 C2 CB 8C 94 9B
; Map ID #$5A: Wind Tower 3F
; indirect data load target (via $82EB)
0x00A04C|$02:$A03C:0C 0C 48 07 88 E0 04 30 DF 4F 0C 25 A3 7E 02 58 60 9B E7 84 13 7D E2 79 38 4C 9B 43 1E B3 88 60 05 D8 CA 44
; Map ID #$5B: Wind Tower 4F
; indirect data load target (via $82F3)
0x00A070|$02:$A060:0A 0A 48 07 97 E9 BE 28 29 AD 7B C2 CA B8 6F CA B2 81 5E 79 38 1D 5E CE 2C 79 5D 6F 40 64
; Map ID #$5C: Wind Tower 5F
; indirect data load target (via $82FB)
0x00A08E|$02:$A07E:0A 0A 48 07 8D 4A 52 83 7C 52 E7 90 8A A2 5D 17 CA 1E 3D 56 B3 BD E3 26 C7 46 42 6F
; Map ID #$5D: Wind Tower 6F
; indirect data load target (via $8303)
0x00A0AA|$02:$A09A:0A 0A 48 E0 81 C4 CF 5C F1 9E B2 E7 8C F5 DF 97 3C 67 AC B9 E7 2C 97 FC 78 9C 07 68 9B EE 06 AF 47 B8 1E B7 4A 32 28
; Map ID #$5E: Wind Tower 7F
; indirect data load target (via $830B)
0x00A0D1|$02:$A0C1:06 06 48 E0 98 9D 12 E2 C7 8F 03 37 6B 5B 24 98 24 27
; Map ID #$5F: Wind Tower 8F
; indirect data load target (via $8313)
0x00A0E3|$02:$A0D3:06 06 48 07 82 5C 8C E8 77 24 3F 1F 2B 73 64 79 C5 DB 29 09
; Map ID #$60: Dragon Horn South 1F
; indirect data load target (via $831B)
0x00A0F7|$02:$A0E7:08 08 48 02 F8 C0 C7 FF 3D DE 4B 02 58 12 C0 96 7F 6E AE 97 51 3D 48 4C
; Map ID #$61: Dragon Horn South 2F
; indirect data load target (via $8323)
0x00A10F|$02:$A0FF:08 08 48 E1 52 B4 15 AA 96 52 CA 59 E2 F8 C0 C7 FF 27 A8 FC C6 4D
; Map ID #$62: Dragon Horn South 3F
; indirect data load target (via $832B)
0x00A125|$02:$A115:08 08 48 E1 52 B4 15 AA 96 52 CA 59 E2 F8 FF C7 C0 1F 99 3D 48 4D
; Map ID #$63: Dragon Horn South 4F
; indirect data load target (via $8333)
0x00A13B|$02:$A12B:08 08 48 E1 52 B4 15 AA 96 52 CA 59 E3 F3 27 A8 BF F1 F0 3E 04 4D
; Map ID #$64: Dragon Horn South 5F
; indirect data load target (via $833B)
0x00A151|$02:$A141:08 08 48 E1 52 B4 15 AA 96 52 CA 59 E2 F8 FF C7 C0 1F 99 3D 48 4D
; Map ID #$65: Dragon Horn South 6F
; indirect data load target (via $8343)
0x00A167|$02:$A157:06 06 48 07 8C 8B 29 65 2C AF 16 2F 1E F0 F5 46 40
; Map ID #$66: Dragon Horn North 1F
; indirect data load target (via $834B)
0x00A178|$02:$A168:08 08 48 02 81 D4 0A 05 02 F9 E1 14 B2 C2 59 61 2C B0 96 5F 27 59 08
; Map ID #$67: Dragon Horn North 2F
; indirect data load target (via $8353)
0x00A18F|$02:$A17F:08 08 48 40 49 D8 F7 B8 96 58 4B 2C 25 96 12 CF 26 E0 F8 C6 4D
; Map ID #$68: Dragon Horn North 3F
; indirect data load target (via $835B)
0x00A1A4|$02:$A194:08 08 48 40 49 D8 F7 B8 96 58 4B 2C 25 96 12 CF 26 E0 F8 C6 4D
; Map ID #$69: Dragon Horn North 4F
; indirect data load target (via $8363)
0x00A1B9|$02:$A1A9:08 08 48 40 49 D8 F7 B8 96 58 4B 2C 25 96 12 CF 1F 19 37 08 4D
; Map ID #$6A: Dragon Horn North 5F
; indirect data load target (via $836B)
0x00A1CE|$02:$A1BE:08 08 48 40 49 D8 F7 B8 96 58 4B 2C 25 96 12 CF 1F 19 37 08 4D
; Map ID #$6B: Dragon Horn North 6F
; indirect data load target (via $8373)
0x00A1E3|$02:$A1D3:08 08 48 40 49 D8 F7 B8 96 58 4B 2C 25 96 12 CF 1F 19 37 08 4D
; Map ID #$6C: Dragon Horn North 7F
; indirect data load target (via $837B)
0x00A1F8|$02:$A1E8:08 08 48 02 8F 14 0A 05 EF 95 F3 D7 EB 2F 77 A5 96 12 CB 09 65 9E 3D A1 90
; Map ID #$6D: Moonbrooke (prologue)
; indirect data load target (via $86D7)
0x00A211|$02:$A201:14 14 C2 00 2A F8 00 00 0E 95 C0 EC 42 5D F0 FC 18 52 24 42 78 6A 42 05 53 C2 51 F5 49 7C 2D 8E 00 94 D0 78 01 41 40 82 05 50 81 A2 50 14 68 9A 78 CF 2A C1 46 F9 44 A9 E1 BE 59 65 11 01 E8 60 BE 10 67 81 2F F5 B0 75 DC 1D 3E 87 32 43 CD 47 D1 E3 A1 BA 78 FC 9B 92 CB 69 BD 3A 67 0A F6 91 9C 88 4E F8 31 96 4C 10
; Save Point ID #$00: Midenhall 2F
; external indirect data load target (via $06:$BFA9)
; indirect data load target
0x00A279|$02:$A269:81 D6 3C
; Save Point ID #$01: Cannock
; external indirect data load target (via $06:$BFAB)
0x00A27C|$02:$A26C:81 A0 11
; Save Point ID #$02: Tantegel
; external indirect data load target (via $06:$BFAD)
0x00A27F|$02:$A26F:81 3A 2E
; Save Point ID #$03: Osterfair
; external indirect data load target (via $06:$BFAF)
0x00A282|$02:$A272:81 D6 8E
; Save Point ID #$04: Beran
; external indirect data load target (via $06:$BFB1)
0x00A285|$02:$A275:81 23 C0
; Save Point ID #$05: Rhone Shrine
; external indirect data load target (via $06:$BFB3)
0x00A288|$02:$A278:81 8A 9B
; Save Point ID #$06: Hamlin
; external indirect data load target (via $06:$BFB5)
0x00A28B|$02:$A27B:81 7D 56
; warp points (map ID, X-pos, Y-pos); other end is same index in $03:$BD13
; external indirect data load target (via $0F:$D7EA)
; indirect data load target
0x00A28E|$02:$A27E:81 D6 3B
0x00A291|$02:$A281:81 A8 32
0x00A294|$02:$A284:81 A0 10
0x00A297|$02:$A287:81 7D 55
0x00A29A|$02:$A28A:81 62 6F
0x00A29D|$02:$A28D:81 1D 37
0x00A2A0|$02:$A290:81 3A 2D
0x00A2A3|$02:$A293:81 D6 8D
0x00A2A6|$02:$A296:81 F0 E9
0x00A2A9|$02:$A299:81 46 85
0x00A2AC|$02:$A29C:81 94 D1
0x00A2AF|$02:$A29F:81 23 C1
; external indirect data load target (via $06:$BF9D)
0x00A2B2|$02:$A2A2:81 5F A5
0x00A2B5|$02:$A2A5:81 E6 15
; external indirect data load target (via $06:$BF8F)
0x00A2B8|$02:$A2A8:81 8E 18
0x00A2BB|$02:$A2AB:81 05 2B
0x00A2BE|$02:$A2AE:81 4D 4F
0x00A2C1|$02:$A2B1:81 19 9D
0x00A2C4|$02:$A2B4:81 D0 D8
0x00A2C7|$02:$A2B7:81 8A 9A
0x00A2CA|$02:$A2BA:81 4A 78
0x00A2CD|$02:$A2BD:81 4C 78
0x00A2D0|$02:$A2C0:81 83 C7
0x00A2D3|$02:$A2C3:81 E2 67
0x00A2D6|$02:$A2C6:81 C8 73
0x00A2D9|$02:$A2C9:81 EC EB
0x00A2DC|$02:$A2CC:81 89 1C
; external indirect data load target (via $06:$BF91)
0x00A2DF|$02:$A2CF:81 5D 0C
; external indirect data load target (via $06:$BF93)
0x00A2E2|$02:$A2D2:81 B5 A7
; external indirect data load target (via $06:$BFA3)
0x00A2E5|$02:$A2D5:81 8B 7B
; external indirect data load target (via $06:$BF95)
0x00A2E8|$02:$A2D8:81 3C 33
; external indirect data load target (via $06:$BFA1)
0x00A2EB|$02:$A2DB:81 3F 67
; external indirect data load target (via $06:$BF97)
0x00A2EE|$02:$A2DE:81 73 C5
; external indirect data load target (via $06:$BF9F)
0x00A2F1|$02:$A2E1:81 47 91
; external indirect data load target (via $06:$BFA5)
0x00A2F4|$02:$A2E4:81 0C 47
; external indirect data load target (via $06:$BFA7)
0x00A2F7|$02:$A2E7:81 0D 43
; external indirect data load target (via $06:$BF9B)
0x00A2FA|$02:$A2EA:81 4F 2D
; external indirect data load target (via $06:$BF99)
0x00A2FD|$02:$A2ED:81 DE 08
0x00A300|$02:$A2F0:81 5F A5
0x00A303|$02:$A2F3:81 8E 1D
0x00A306|$02:$A2F6:81 6D B9
0x00A309|$02:$A2F9:81 4F 30
0x00A30C|$02:$A2FC:01 D5 3B
0x00A30F|$02:$A2FF:01 A7 32
0x00A312|$02:$A302:01 9F 10
0x00A315|$02:$A305:01 7C 55
0x00A318|$02:$A308:01 61 6F
0x00A31B|$02:$A30B:01 1C 37
0x00A31E|$02:$A30E:01 39 2D
0x00A321|$02:$A311:01 D5 8D
0x00A324|$02:$A314:01 EF E9
0x00A327|$02:$A317:01 45 85
0x00A32A|$02:$A31A:01 93 D1
0x00A32D|$02:$A31D:01 22 C1
0x00A330|$02:$A320:01 5E A5
0x00A333|$02:$A323:01 3B 33
0x00A336|$02:$A326:02 03 07
0x00A339|$02:$A329:03 15 02
0x00A33C|$02:$A32C:07 07 05
0x00A33F|$02:$A32F:07 0B 05
0x00A342|$02:$A332:09 0A 0E
0x00A345|$02:$A335:0D 06 04
0x00A348|$02:$A338:0E 05 05
0x00A34B|$02:$A33B:11 01 03
0x00A34E|$02:$A33E:13 07 04
0x00A351|$02:$A341:44 04 0F
0x00A354|$02:$A344:1A 05 07
0x00A357|$02:$A347:23 03 03
0x00A35A|$02:$A34A:24 01 01
0x00A35D|$02:$A34D:25 01 01
0x00A360|$02:$A350:26 01 01
0x00A363|$02:$A353:27 01 01
0x00A366|$02:$A356:28 01 01
0x00A369|$02:$A359:AA 01 01
0x00A36C|$02:$A35C:83 07 0C
0x00A36F|$02:$A35F:A2 02 03
0x00A372|$02:$A362:8F 02 15
0x00A375|$02:$A365:9D 03 02
0x00A378|$02:$A368:9A 05 0A
0x00A37B|$02:$A36B:9E 06 02
0x00A37E|$02:$A36E:9C 07 04
0x00A381|$02:$A371:9E 02 02
0x00A384|$02:$A374:9B 03 03
0x00A387|$02:$A377:9E 04 02
0x00A38A|$02:$A37A:9D 05 02
0x00A38D|$02:$A37D:9D 07 02
0x00A390|$02:$A380:A0 00 01
0x00A393|$02:$A383:95 0C 02
0x00A396|$02:$A386:A1 04 03
0x00A399|$02:$A389:A1 04 03
0x00A39C|$02:$A38C:2C 02 09
0x00A39F|$02:$A38F:2E 04 05
0x00A3A2|$02:$A392:2F 0E 13
0x00A3A5|$02:$A395:2F 02 03
0x00A3A8|$02:$A398:2F 04 07
0x00A3AB|$02:$A39B:2F 02 17
0x00A3AE|$02:$A39E:2F 0C 19
0x00A3B1|$02:$A3A1:2F 16 1D
0x00A3B4|$02:$A3A4:2F 1E 1F
0x00A3B7|$02:$A3A7:2F 1E 23
0x00A3BA|$02:$A3AA:2F 0E 05
0x00A3BD|$02:$A3AD:31 1C 03
0x00A3C0|$02:$A3B0:31 16 0B
0x00A3C3|$02:$A3B3:31 18 19
0x00A3C6|$02:$A3B6:31 0E 03
0x00A3C9|$02:$A3B9:31 06 03
0x00A3CC|$02:$A3BC:31 0C 09
0x00A3CF|$02:$A3BF:31 0E 0B
0x00A3D2|$02:$A3C2:31 10 0D
0x00A3D5|$02:$A3C5:31 08 09
0x00A3D8|$02:$A3C8:31 0A 0B
0x00A3DB|$02:$A3CB:31 0C 0D
0x00A3DE|$02:$A3CE:31 0E 0F
0x00A3E1|$02:$A3D1:31 08 0D
0x00A3E4|$02:$A3D4:31 0A 0F
0x00A3E7|$02:$A3D7:31 0A 1D
0x00A3EA|$02:$A3DA:32 0A 03
0x00A3ED|$02:$A3DD:32 02 0F
0x00A3F0|$02:$A3E0:32 02 21
0x00A3F3|$02:$A3E3:4A 14 05
0x00A3F6|$02:$A3E6:4A 14 15
0x00A3F9|$02:$A3E9:4A 0A 0F
0x00A3FC|$02:$A3EC:4A 02 15
0x00A3FF|$02:$A3EF:4A 04 03
0x00A402|$02:$A3F2:4B 08 0B
0x00A405|$02:$A3F5:4B 04 03
0x00A408|$02:$A3F8:4B 10 03
0x00A40B|$02:$A3FB:4C 04 05
0x00A40E|$02:$A3FE:4C 0A 0D
0x00A411|$02:$A401:4D 04 05
0x00A414|$02:$A404:4D 02 09
0x00A417|$02:$A407:4E 0A 03
0x00A41A|$02:$A40A:4F 04 05
0x00A41D|$02:$A40D:34 08 19
0x00A420|$02:$A410:34 0C 07
0x00A423|$02:$A413:34 04 03
0x00A426|$02:$A416:34 02 05
0x00A429|$02:$A419:34 16 19
0x00A42C|$02:$A41C:35 02 09
0x00A42F|$02:$A41F:35 0E 03
0x00A432|$02:$A422:35 0A 0B
0x00A435|$02:$A425:35 02 19
0x00A438|$02:$A428:35 14 1D
0x00A43B|$02:$A42B:36 02 03
0x00A43E|$02:$A42E:36 0A 07
0x00A441|$02:$A431:36 10 03
0x00A444|$02:$A434:51 0C 0D
0x00A447|$02:$A437:51 14 0D
0x00A44A|$02:$A43A:51 14 15
0x00A44D|$02:$A43D:51 0C 15
0x00A450|$02:$A440:52 1E 01
0x00A453|$02:$A443:52 1C 09
0x00A456|$02:$A446:52 1E 17
0x00A459|$02:$A449:52 14 0F
0x00A45C|$02:$A44C:52 10 1B
0x00A45F|$02:$A44F:52 0A 1B
0x00A462|$02:$A452:52 02 01
0x00A465|$02:$A455:53 14 15
0x00A468|$02:$A458:53 16 1B
0x00A46B|$02:$A45B:53 02 0F
0x00A46E|$02:$A45E:53 04 0B
0x00A471|$02:$A461:54 1A 01
0x00A474|$02:$A464:54 1A 0F
0x00A477|$02:$A467:54 16 11
0x00A47A|$02:$A46A:54 00 01
0x00A47D|$02:$A46D:54 04 05
0x00A480|$02:$A470:54 02 17
0x00A483|$02:$A473:55 10 17
0x00A486|$02:$A476:55 12 1B
0x00A489|$02:$A479:55 04 0B
0x00A48C|$02:$A47C:55 10 03
0x00A48F|$02:$A47F:55 10 0F
0x00A492|$02:$A482:56 00 03
0x00A495|$02:$A485:56 04 05
0x00A498|$02:$A488:56 02 11
0x00A49B|$02:$A48B:56 00 13
0x00A49E|$02:$A48E:57 06 0B
0x00A4A1|$02:$A491:38 06 0F
0x00A4A4|$02:$A494:38 14 03
0x00A4A7|$02:$A497:38 0A 15
0x00A4AA|$02:$A49A:38 0E 0D
0x00A4AD|$02:$A49D:3B 06 03
0x00A4B0|$02:$A4A0:3B 06 0D
0x00A4B3|$02:$A4A3:3B 14 11
0x00A4B6|$02:$A4A6:3C 0E 21
0x00A4B9|$02:$A4A9:3C 02 2B
0x00A4BC|$02:$A4AC:3D 02 21
0x00A4BF|$02:$A4AF:3D 0A 21
0x00A4C2|$02:$A4B2:3D 12 21
0x00A4C5|$02:$A4B5:3D 1A 21
0x00A4C8|$02:$A4B8:3E 0E 1D
0x00A4CB|$02:$A4BB:3E 20 0D
0x00A4CE|$02:$A4BE:3E 12 0F
0x00A4D1|$02:$A4C1:3E 12 19
0x00A4D4|$02:$A4C4:3E 20 05
0x00A4D7|$02:$A4C7:3F 12 15
0x00A4DA|$02:$A4CA:59 06 13
0x00A4DD|$02:$A4CD:59 0C 0B
0x00A4E0|$02:$A4D0:59 16 01
0x00A4E3|$02:$A4D3:5A 00 01
0x00A4E6|$02:$A4D6:5A 08 03
0x00A4E9|$02:$A4D9:5A 0A 0F
0x00A4EC|$02:$A4DC:5B 02 05
0x00A4EF|$02:$A4DF:5B 0A 09
0x00A4F2|$02:$A4E2:5B 00 11
0x00A4F5|$02:$A4E5:5C 04 09
0x00A4F8|$02:$A4E8:5C 08 09
0x00A4FB|$02:$A4EB:5C 08 13
0x00A4FE|$02:$A4EE:5C 12 13
0x00A501|$02:$A4F1:5D 0A 09
0x00A504|$02:$A4F4:5D 0E 07
0x00A507|$02:$A4F7:5E 02 05
0x00A50A|$02:$A4FA:5E 06 03
0x00A50D|$02:$A4FD:5E 00 01
0x00A510|$02:$A500:5E 04 09
0x00A513|$02:$A503:5E 08 07
0x00A516|$02:$A506:5F 04 05
0x00A519|$02:$A509:61 06 0D
0x00A51C|$02:$A50C:62 06 0D
0x00A51F|$02:$A50F:63 06 0D
0x00A522|$02:$A512:64 06 0D
0x00A525|$02:$A515:65 06 07
0x00A528|$02:$A518:67 06 09
0x00A52B|$02:$A51B:68 06 09
0x00A52E|$02:$A51E:69 06 09
0x00A531|$02:$A521:6A 06 09
0x00A534|$02:$A524:6B 06 09
0x00A537|$02:$A527:6C 04 07
0x00A53A|$02:$A52A:45 0E 09
0x00A53D|$02:$A52D:46 02 05
0x00A540|$02:$A530:47 14 07
0x00A543|$02:$A533:48 02 07
0x00A546|$02:$A536:17 0D 0B
; pointers to per-map NPC setup (X-pos, Y-pos, ???, sprite ID, dialogue [not string] ID)
; index corresponds to map ID
; indexed data load target (from $B1D6)
; external indexed data load target (from $0F:$E527)
0x00A549|$02:$A539:30
; indexed data load target (from $B1DB)
; external indexed data load target (from $0F:$E52C)
0x00A54A|$02:$A53A:   A6	; $02:$A630; Map ID #$00: Fake Midenhall
0x00A54B|$02:$A53B:00 00	; $02:$0000; Map ID #$01: World Map
0x00A54D|$02:$A53D:1B A6	; $02:$A61B; Map ID #$02: Midenhall 2F
0x00A54F|$02:$A53F:30 A6	; $02:$A630; Map ID #$03: Midenhall 1F
0x00A551|$02:$A541:77 A6	; $02:$A677; Map ID #$04: Midenhall B1
0x00A553|$02:$A543:87 A6	; $02:$A687; Map ID #$05: Leftwyne
0x00A555|$02:$A545:CE A6	; $02:$A6CE; Map ID #$06: Cannock
0x00A557|$02:$A547:1F A7	; $02:$A71F; Map ID #$07: Hamlin
0x00A559|$02:$A549:6B A7	; $02:$A76B; Map ID #$08: Hamlin Waterway
0x00A55B|$02:$A54B:76 A7	; $02:$A776; Map ID #$09: Moonbrooke
0x00A55D|$02:$A54D:86 A7	; $02:$A786; Map ID #$0A: Moonbrooke B1
0x00A55F|$02:$A54F:8C A7	; $02:$A78C; Map ID #$0B: Lianport
0x00A561|$02:$A551:E2 A7	; $02:$A7E2; Map ID #$0C: Tantegel
0x00A563|$02:$A553:29 A8	; $02:$A829; Map ID #$0D: Tantegel Town 2F
0x00A565|$02:$A555:2F A8	; $02:$A82F; Map ID #$0E: Tantegel Castle 2F
0x00A567|$02:$A557:35 A8	; $02:$A835; Map ID #$0F: Osterfair
0x00A569|$02:$A559:81 A8	; $02:$A881; Map ID #$10: Zahan
0x00A56B|$02:$A55B:D2 A8	; $02:$A8D2; Map ID #$11: Tuhn
0x00A56D|$02:$A55D:00 00	; $02:$0000; Map ID #$12: Tuhn Watergate
0x00A56F|$02:$A55F:19 A9	; $02:$A919; Map ID #$13: Wellgarth
0x00A571|$02:$A561:29 A9	; $02:$A929; Map ID #$14: Wellgarth Underground
0x00A573|$02:$A563:7A A9	; $02:$A97A; Map ID #$15: Beran
0x00A575|$02:$A565:D5 A9	; $02:$A9D5; Map ID #$16: Hargon's Castle 1F
0x00A577|$02:$A567:F9 A9	; $02:$A9F9; Map ID #$17: Hargon's Castle 7F
0x00A579|$02:$A569:09 AA	; $02:$AA09; Map ID #$18: Charlock Castle B8
0x00A57B|$02:$A56B:0F AA	; $02:$AA0F; Map ID #$19: Shrine NW of Midenhall
0x00A57D|$02:$A56D:15 AA	; $02:$AA15; Map ID #$1A: Shrine SW of Cannock
0x00A57F|$02:$A56F:25 AA	; $02:$AA25; Map ID #$1B: Shrine NW of Lianport
0x00A581|$02:$A571:2B AA	; $02:$AA2B; Map ID #$1C: Shrine SE of Rimuldar
0x00A583|$02:$A573:31 AA	; $02:$AA31; Map ID #$1D: Shrine NW of Beran
0x00A585|$02:$A575:37 AA	; $02:$AA37; Map ID #$1E: Shrine NW of Zahan
0x00A587|$02:$A577:3D AA	; $02:$AA3D; Map ID #$1F: Rhone Shrine
0x00A589|$02:$A579:48 AA	; $02:$AA48; Map ID #$20: Shrine SW of Moonbrooke
0x00A58B|$02:$A57B:4E AA	; $02:$AA4E; Map ID #$21: Rhone Cave Shrine
0x00A58D|$02:$A57D:59 AA	; $02:$AA59; Map ID #$22: Shrine S of Midenhall
0x00A58F|$02:$A57F:00 00	; $02:$0000; Map ID #$23: Rubiss' Shrine B1
0x00A591|$02:$A581:00 00	; $02:$0000; Map ID #$24: Rubiss' Shrine B2
0x00A593|$02:$A583:00 00	; $02:$0000; Map ID #$25: Rubiss' Shrine B3
0x00A595|$02:$A585:00 00	; $02:$0000; Map ID #$26: Rubiss' Shrine B4
0x00A597|$02:$A587:00 00	; $02:$0000; Map ID #$27: Rubiss' Shrine B5
0x00A599|$02:$A589:00 00	; $02:$0000; Map ID #$28: Rubiss' Shrine B6
0x00A59B|$02:$A58B:D5 AA	; $02:$AAD5; Map ID #$29: Rubiss' Shrine B7
0x00A59D|$02:$A58D:00 00	; $02:$0000; Map ID #$2A: Shrine W of Zahan
0x00A59F|$02:$A58F:00 00	; $02:$0000; Map ID #$2B: Cave to Hamlin
0x00A5A1|$02:$A591:00 00	; $02:$0000; Map ID #$2C: Lake Cave B1
0x00A5A3|$02:$A593:00 00	; $02:$0000; Map ID #$2D: Lake Cave B2
0x00A5A5|$02:$A595:00 00	; $02:$0000; Map ID #$2E: Sea Cave B1
0x00A5A7|$02:$A597:A7 AA	; $02:$AAA7; Map ID #$2F: Sea Cave B2
0x00A5A9|$02:$A599:00 00	; $02:$0000; Map ID #$30: Sea Cave B3-1
0x00A5AB|$02:$A59B:00 00	; $02:$0000; Map ID #$31: Sea Cave B3-2
0x00A5AD|$02:$A59D:00 00	; $02:$0000; Map ID #$32: Sea Cave B4
0x00A5AF|$02:$A59F:B2 AA	; $02:$AAB2; Map ID #$33: Sea Cave B5
0x00A5B1|$02:$A5A1:00 00	; $02:$0000; Map ID #$34: Charlock Castle B1/B2
0x00A5B3|$02:$A5A3:00 00	; $02:$0000; Map ID #$35: Charlock Castle B3/B4-1/B5-1
0x00A5B5|$02:$A5A5:00 00	; $02:$0000; Map ID #$36: Charlock Castle B4-2/B5-2/B6
0x00A5B7|$02:$A5A7:00 00	; $02:$0000; Map ID #$37: Cave to Rhone B1
0x00A5B9|$02:$A5A9:00 00	; $02:$0000; Map ID #$38: Cave to Rhone 1F
0x00A5BB|$02:$A5AB:00 00	; $02:$0000; Map ID #$39: Cave to Rhone 2F-1
0x00A5BD|$02:$A5AD:00 00	; $02:$0000; Map ID #$3A: Cave to Rhone 2F-2
0x00A5BF|$02:$A5AF:00 00	; $02:$0000; Map ID #$3B: Cave to Rhone 2F-3
0x00A5C1|$02:$A5B1:00 00	; $02:$0000; Map ID #$3C: Cave to Rhone 3F
0x00A5C3|$02:$A5B3:00 00	; $02:$0000; Map ID #$3D: Cave to Rhone 4F
0x00A5C5|$02:$A5B5:00 00	; $02:$0000; Map ID #$3E: Cave to Rhone 5F
0x00A5C7|$02:$A5B7:00 00	; $02:$0000; Map ID #$3F: Cave to Rhone 6F
0x00A5C9|$02:$A5B9:64 AA	; $02:$AA64; Map ID #$40: Spring of Bravery
0x00A5CB|$02:$A5BB:00 00	; $02:$0000; Map ID #$41: unused?
0x00A5CD|$02:$A5BD:00 00	; $02:$0000; Map ID #$42: unused?
0x00A5CF|$02:$A5BF:00 00	; $02:$0000; Map ID #$43: Cave to Rimuldar
0x00A5D1|$02:$A5C1:00 00	; $02:$0000; Map ID #$44: Hargon's Castle 2F
0x00A5D3|$02:$A5C3:00 00	; $02:$0000; Map ID #$45: Hargon's Castle 3F
0x00A5D5|$02:$A5C5:00 00	; $02:$0000; Map ID #$46: Hargon's Castle 4F
0x00A5D7|$02:$A5C7:00 00	; $02:$0000; Map ID #$47: Hargon's Castle 5F
0x00A5D9|$02:$A5C9:00 00	; $02:$0000; Map ID #$48: Hargon's Castle 6F
0x00A5DB|$02:$A5CB:A1 AA	; $02:$AAA1; Map ID #$49: Moon Tower 1F
0x00A5DD|$02:$A5CD:00 00	; $02:$0000; Map ID #$4A: Moon Tower 2F
0x00A5DF|$02:$A5CF:00 00	; $02:$0000; Map ID #$4B: Moon Tower 3F
0x00A5E1|$02:$A5D1:00 00	; $02:$0000; Map ID #$4C: Moon Tower 4F
0x00A5E3|$02:$A5D3:00 00	; $02:$0000; Map ID #$4D: Moon Tower 5F
0x00A5E5|$02:$A5D5:00 00	; $02:$0000; Map ID #$4E: Moon Tower 6F
0x00A5E7|$02:$A5D7:00 00	; $02:$0000; Map ID #$4F: Moon Tower 7F
0x00A5E9|$02:$A5D9:00 00	; $02:$0000; Map ID #$50: Lighthouse 1F
0x00A5EB|$02:$A5DB:86 AA	; $02:$AA86; Map ID #$51: Lighthouse 2F
0x00A5ED|$02:$A5DD:CF AA	; $02:$AACF; Map ID #$52: Lighthouse 3F
0x00A5EF|$02:$A5DF:C9 AA	; $02:$AAC9; Map ID #$53: Lighthouse 4F
0x00A5F1|$02:$A5E1:C3 AA	; $02:$AAC3; Map ID #$54: Lighthouse 5F
0x00A5F3|$02:$A5E3:BD AA	; $02:$AABD; Map ID #$55: Lighthouse 6F
0x00A5F5|$02:$A5E5:7B AA	; $02:$AA7B; Map ID #$56: Lighthouse 7F
0x00A5F7|$02:$A5E7:9B AA	; $02:$AA9B; Map ID #$57: Lighthouse 8F
0x00A5F9|$02:$A5E9:00 00	; $02:$0000; Map ID #$58: Wind Tower 1F
0x00A5FB|$02:$A5EB:6F AA	; $02:$AA6F; Map ID #$59: Wind Tower 2F
0x00A5FD|$02:$A5ED:00 00	; $02:$0000; Map ID #$5A: Wind Tower 3F
0x00A5FF|$02:$A5EF:00 00	; $02:$0000; Map ID #$5B: Wind Tower 4F
0x00A601|$02:$A5F1:00 00	; $02:$0000; Map ID #$5C: Wind Tower 5F
0x00A603|$02:$A5F3:00 00	; $02:$0000; Map ID #$5D: Wind Tower 6F
0x00A605|$02:$A5F5:00 00	; $02:$0000; Map ID #$5E: Wind Tower 7F
0x00A607|$02:$A5F7:00 00	; $02:$0000; Map ID #$5F: Wind Tower 8F
0x00A609|$02:$A5F9:75 AA	; $02:$AA75; Map ID #$60: Dragon Horn South 1F
0x00A60B|$02:$A5FB:00 00	; $02:$0000; Map ID #$61: Dragon Horn South 2F
0x00A60D|$02:$A5FD:00 00	; $02:$0000; Map ID #$62: Dragon Horn South 3F
0x00A60F|$02:$A5FF:00 00	; $02:$0000; Map ID #$63: Dragon Horn South 4F
0x00A611|$02:$A601:00 00	; $02:$0000; Map ID #$64: Dragon Horn South 5F
0x00A613|$02:$A603:00 00	; $02:$0000; Map ID #$65: Dragon Horn South 6F
0x00A615|$02:$A605:00 00	; $02:$0000; Map ID #$66: Dragon Horn North 1F
0x00A617|$02:$A607:00 00	; $02:$0000; Map ID #$67: Dragon Horn North 2F
0x00A619|$02:$A609:00 00	; $02:$0000; Map ID #$68: Dragon Horn North 3F
0x00A61B|$02:$A60B:00 00	; $02:$0000; Map ID #$69: Dragon Horn North 4F
0x00A61D|$02:$A60D:00 00	; $02:$0000; Map ID #$6A: Dragon Horn North 5F
0x00A61F|$02:$A60F:00 00	; $02:$0000; Map ID #$6B: Dragon Horn North 6F
0x00A621|$02:$A611:00 00	; $02:$0000; Map ID #$6C: Dragon Horn North 7F
0x00A623|$02:$A613:EA AA	; $02:$AAEA; Map ID #$6D: Moonbrooke (prologue)
0x00A625|$02:$A615:4F AB	; $02:$AB4F; Map ID #$6E: Midenhall 1F (prologue)
0x00A627|$02:$A617:69 AB	; $02:$AB69; Map ID #$6F: World Map at Moonbrooke (prologue)
0x00A629|$02:$A619:83 AB	; $02:$AB83; Map ID #$70: World Map at Midenhall (prologue)
; Map ID #$02: Midenhall 2F
; indirect data load target (via $A53D)
0x00A62B|$02:$A61B:07 05 12 0B 9F
0x00A630|$02:$A620:03 03 02 03 9D
0x00A635|$02:$A625:04 07 02 0A 9E
0x00A63A|$02:$A62A:03 07 00 FF 00
; indirect data load target
0x00A63F|$02:$A62F:FF
; Map IDs #$00/#$03: Fake Midenhall/Midenhall 1F
; indirect data load target (via $A539, $A53F)
0x00A640|$02:$A630:0E 09 12 07 8E
0x00A645|$02:$A635:16 0E 13 0A 8F
0x00A64A|$02:$A63A:03 06 12 07 2A
0x00A64F|$02:$A63F:0C 16 10 09 30
0x00A654|$02:$A644:0A 06 13 06 2C
0x00A659|$02:$A649:0D 04 12 0A 2F
0x00A65E|$02:$A64E:05 13 12 0C 8D
0x00A663|$02:$A653:11 0A 13 0C 2D
0x00A668|$02:$A658:02 02 01 05 29
0x00A66D|$02:$A65D:05 0B 02 0B 2B
0x00A672|$02:$A662:0A 14 01 06 1C
0x00A677|$02:$A667:0D 0F 01 0A 2E
0x00A67C|$02:$A66C:15 13 03 06 0A
0x00A681|$02:$A671:10 02 03 03 D7
; indirect data load target
0x00A686|$02:$A676:FF
; Map ID #$04: Midenhall B1
; indirect data load target (via $A541)
0x00A687|$02:$A677:00 03 10 08 A0
0x00A68C|$02:$A67C:05 01 02 0A 31
0x00A691|$02:$A681:01 08 00 05 D9
; indirect data load target
0x00A696|$02:$A686:FF
; Map ID #$05: Leftwyne
; indirect data load target (via $A543)
0x00A697|$02:$A687:05 03 12 06 14
0x00A69C|$02:$A68C:05 0F 10 09 38
0x00A6A1|$02:$A691:04 06 11 0A 95
0x00A6A6|$02:$A696:0C 13 13 0A 35
0x00A6AB|$02:$A69B:0F 05 10 0C 36
0x00A6B0|$02:$A6A0:09 0C 13 07 32
0x00A6B5|$02:$A6A5:03 0A 12 0B 34
0x00A6BA|$02:$A6AA:13 0A 10 0C 33
0x00A6BF|$02:$A6AF:09 04 01 06 28
0x00A6C4|$02:$A6B4:13 04 02 05 27
0x00A6C9|$02:$A6B9:04 13 01 06 1D
0x00A6CE|$02:$A6BE:13 0F 03 06 0B
0x00A6D3|$02:$A6C3:16 16 01 08 37
0x00A6D8|$02:$A6C8:12 12 02 01 01
; indirect data load target
0x00A6DD|$02:$A6CD:FF
; Map ID #$06: Cannock
; indirect data load target (via $A545)
0x00A6DE|$02:$A6CE:02 06 11 0A 39
0x00A6E3|$02:$A6D3:16 02 13 07 A2
0x00A6E8|$02:$A6D8:06 0F 12 0B 40
0x00A6ED|$02:$A6DD:13 13 11 08 3D
0x00A6F2|$02:$A6E2:09 14 11 07 3F
0x00A6F7|$02:$A6E7:14 16 12 0C 3E
0x00A6FC|$02:$A6EC:03 04 02 03 A1
0x00A701|$02:$A6F1:11 01 02 0A 93
0x00A706|$02:$A6F6:07 05 00 0A 3A
0x00A70B|$02:$A6FB:0B 09 02 0B A3
0x00A710|$02:$A700:16 07 02 05 27
0x00A715|$02:$A705:14 09 00 04 00
0x00A71A|$02:$A70A:17 09 00 04 00
0x00A71F|$02:$A70F:01 0F 01 06 0C
0x00A724|$02:$A714:18 0F 03 0A 3C
0x00A729|$02:$A719:02 17 01 06 1E
; indirect data load target
0x00A72E|$02:$A71E:FF
; Map ID #$07: Hamlin
; indirect data load target (via $A547)
0x00A72F|$02:$A71F:0C 02 11 09 02
0x00A734|$02:$A724:08 0F 11 07 91
0x00A739|$02:$A729:0C 0B 10 0C 42
0x00A73E|$02:$A72E:0C 15 11 08 44
0x00A743|$02:$A733:15 08 13 0C 96
0x00A748|$02:$A738:12 13 11 0A 43
0x00A74D|$02:$A73D:00 00 02 0A 94
0x00A752|$02:$A742:05 04 02 0B 41
0x00A757|$02:$A747:05 05 00 04 00
0x00A75C|$02:$A74C:13 03 02 05 27
0x00A761|$02:$A751:12 0A 03 06 28
0x00A766|$02:$A756:03 11 01 06 0D
0x00A76B|$02:$A75B:15 0F 02 06 15
0x00A770|$02:$A760:16 15 03 06 1F
0x00A775|$02:$A765:0F 01 02 0B 05
; indirect data load target
0x00A77A|$02:$A76A:FF
; Map ID #$08: Hamlin Waterway
; indirect data load target (via $A549)
0x00A77B|$02:$A76B:03 01 13 05 A5
0x00A780|$02:$A770:05 01 02 05 A5
; indirect data load target
0x00A785|$02:$A775:FF
; Map ID #$09: Moonbrooke
; indirect data load target (via $A54B)
0x00A786|$02:$A776:03 06 11 04 45
0x00A78B|$02:$A77B:11 05 10 04 A6
0x00A790|$02:$A780:08 12 10 04 46
; indirect data load target
0x00A795|$02:$A785:FF
; Map ID #$0A: Moonbrooke B1
; indirect data load target (via $A54D)
0x00A796|$02:$A786:00 06 00 0A A7
; indirect data load target
0x00A79B|$02:$A78B:FF
; Map ID #$0B: Lianport
; indirect data load target (via $A54F)
0x00A79C|$02:$A78C:0C 05 13 0C 48
0x00A7A1|$02:$A791:0B 15 10 0A 4B
0x00A7A6|$02:$A796:0E 0D 10 08 AB
0x00A7AB|$02:$A79B:01 15 10 07 AC
0x00A7B0|$02:$A7A0:09 0C 10 0C 4A
0x00A7B5|$02:$A7A5:10 13 13 07 4C
0x00A7BA|$02:$A7AA:04 04 03 05 00
0x00A7BF|$02:$A7AF:03 05 00 05 00
0x00A7C4|$02:$A7B4:03 04 02 07 AA
0x00A7C9|$02:$A7B9:10 07 02 0B A8
0x00A7CE|$02:$A7BE:08 03 02 06 16
0x00A7D3|$02:$A7C3:05 0B 01 06 20
0x00A7D8|$02:$A7C8:12 0D 03 06 28
0x00A7DD|$02:$A7CD:17 0E 02 06 A9
0x00A7E2|$02:$A7D2:05 12 02 0B 27
0x00A7E7|$02:$A7D7:18 14 03 06 0E
0x00A7EC|$02:$A7DC:13 05 00 0D 00
; indirect data load target
0x00A7F1|$02:$A7E1:FF
; Map ID #$0C: Tantegel
; indirect data load target (via $A551)
0x00A7F2|$02:$A7E2:16 02 10 0A 4E
0x00A7F7|$02:$A7E7:17 0A 13 0C 4F
0x00A7FC|$02:$A7EC:08 0A 10 0C 4D
0x00A801|$02:$A7F1:12 0E 12 06 98
0x00A806|$02:$A7F6:13 09 11 07 51
0x00A80B|$02:$A7FB:04 04 02 06 17
0x00A810|$02:$A800:0C 02 03 07 97
0x00A815|$02:$A805:0C 07 02 0B AD
0x00A81A|$02:$A80A:1B 06 02 05 AF
0x00A81F|$02:$A80F:03 0D 01 06 0F
0x00A824|$02:$A814:0B 10 00 06 21
0x00A829|$02:$A819:17 10 03 0A 50
0x00A82E|$02:$A81E:1C 0F 03 0B AE
0x00A833|$02:$A823:1C 0A 03 05 27
; indirect data load target
0x00A838|$02:$A828:FF
; Map ID #$0D: Tantegel Town 2F
; indirect data load target (via $A553)
0x00A839|$02:$A829:02 02 02 03 52
; indirect data load target
0x00A83E|$02:$A82E:FF
; Map ID #$0E: Tantegel Castle 2F
; indirect data load target (via $A555)
0x00A83F|$02:$A82F:02 05 11 0A 53
; indirect data load target
0x00A844|$02:$A834:FF
; Map ID #$0F: Osterfair
; indirect data load target (via $A557)
0x00A845|$02:$A835:07 04 02 0A 58
0x00A84A|$02:$A83A:12 10 13 0C 59
0x00A84F|$02:$A83F:03 0E 11 06 10
0x00A854|$02:$A844:09 14 12 08 5A
0x00A859|$02:$A849:08 10 11 0C 5C
0x00A85E|$02:$A84E:08 09 01 09 B3
0x00A863|$02:$A853:0C 05 02 04 00
0x00A868|$02:$A858:0D 06 02 07 55
0x00A86D|$02:$A85D:0E 05 02 03 B0
0x00A872|$02:$A862:0F 06 02 07 56
0x00A877|$02:$A867:10 05 02 04 00
0x00A87C|$02:$A86C:04 08 02 0B B1
0x00A881|$02:$A871:13 0A 01 08 57
0x00A886|$02:$A876:06 15 01 06 18
0x00A88B|$02:$A87B:11 12 03 05 54
; indirect data load target
0x00A890|$02:$A880:FF
; Map ID #$10: Zahan
; indirect data load target (via $A559)
0x00A891|$02:$A881:08 08 11 0B 67
0x00A896|$02:$A886:10 0C 13 05 65
0x00A89B|$02:$A88B:0A 0D 10 07 64
0x00A8A0|$02:$A890:04 12 10 07 62
0x00A8A5|$02:$A895:13 12 12 07 63
0x00A8AA|$02:$A89A:12 08 03 09 B4
0x00A8AF|$02:$A89F:00 00 02 08 5D
0x00A8B4|$02:$A8A4:09 02 02 04 00
0x00A8B9|$02:$A8A9:0F 02 02 04 00
0x00A8BE|$02:$A8AE:03 08 01 07 11
0x00A8C3|$02:$A8B3:0C 09 02 07 5E
0x00A8C8|$02:$A8B8:05 0C 03 06 66
0x00A8CD|$02:$A8BD:15 0A 03 07 22
0x00A8D2|$02:$A8C2:0E 10 00 07 5F
0x00A8D7|$02:$A8C7:0B 12 01 07 60
0x00A8DC|$02:$A8CC:0D 13 03 05 61
; indirect data load target
0x00A8E1|$02:$A8D1:FF
; Map ID #$11: Tuhn
; indirect data load target (via $A55B)
0x00A8E2|$02:$A8D2:12 0A 13 09 6C
0x00A8E7|$02:$A8D7:03 15 10 0C 6A
0x00A8EC|$02:$A8DC:00 0E 12 07 69
0x00A8F1|$02:$A8E1:0C 18 12 0A 6F
0x00A8F6|$02:$A8E6:0C 14 13 07 6E
0x00A8FB|$02:$A8EB:09 1F 13 0C 6D
0x00A900|$02:$A8F0:12 01 02 08 6B
0x00A905|$02:$A8F5:0A 0D 01 06 12
0x00A90A|$02:$A8FA:11 0C 02 0C 23
0x00A90F|$02:$A8FF:11 11 03 0B 70
0x00A914|$02:$A904:05 16 02 0B B5
0x00A919|$02:$A909:11 19 01 0B 68
0x00A91E|$02:$A90E:05 1D 03 06 19
0x00A923|$02:$A913:10 1D 02 05 27
; indirect data load target
0x00A928|$02:$A918:FF
; Map ID #$13: Wellgarth
; indirect data load target (via $A55F)
0x00A929|$02:$A919:05 08 11 09 72
0x00A92E|$02:$A91E:03 04 02 04 00
0x00A933|$02:$A923:02 05 03 0C 71
; indirect data load target
0x00A938|$02:$A928:FF
; Map ID #$14: Wellgarth Underground
; indirect data load target (via $A561)
0x00A939|$02:$A929:01 03 11 0B 75
0x00A93E|$02:$A92E:02 0D 12 05 77
0x00A943|$02:$A933:0C 06 12 07 03
0x00A948|$02:$A938:05 17 12 07 78
0x00A94D|$02:$A93D:01 08 10 08 25
0x00A952|$02:$A942:0E 11 10 0C 79
0x00A957|$02:$A947:0B 0C 13 08 99
0x00A95C|$02:$A94C:08 01 02 06 1A
0x00A961|$02:$A951:0E 01 02 0B 73
0x00A966|$02:$A956:17 01 02 0C B6
0x00A96B|$02:$A95B:15 05 02 0A 74
0x00A970|$02:$A960:0B 09 03 06 24
0x00A975|$02:$A965:08 10 01 06 28
0x00A97A|$02:$A96A:14 10 02 05 27
0x00A97F|$02:$A96F:00 13 01 06 12
0x00A984|$02:$A974:11 13 02 0A 7A
; indirect data load target
0x00A989|$02:$A979:FF
; Map ID #$15: Beran
; indirect data load target (via $A563)
0x00A98A|$02:$A97A:06 0B 12 05 9A
0x00A98F|$02:$A97F:16 0C 10 05 B9
0x00A994|$02:$A984:0E 0C 13 0A 80
0x00A999|$02:$A989:13 17 11 0C 84
0x00A99E|$02:$A98E:05 0E 11 07 81
0x00A9A3|$02:$A993:17 14 12 08 1B
0x00A9A8|$02:$A998:0E 12 11 0B 82
0x00A9AD|$02:$A99D:17 16 10 07 26
0x00A9B2|$02:$A9A2:02 01 02 0B C0
0x00A9B7|$02:$A9A7:08 00 02 07 7C
0x00A9BC|$02:$A9AC:0D 06 02 05 27
0x00A9C1|$02:$A9B1:10 03 02 08 7D
0x00A9C6|$02:$A9B6:14 02 02 0A 7E
0x00A9CB|$02:$A9BB:14 0D 01 06 7F
0x00A9D0|$02:$A9C0:03 11 01 06 13
0x00A9D5|$02:$A9C5:08 16 03 0A 92
0x00A9DA|$02:$A9CA:0D 16 01 06 28
0x00A9DF|$02:$A9CF:15 15 01 0A 83
; indirect data load target
0x00A9E4|$02:$A9D4:FF
; Map ID #$16: Hargon's Castle 1F
; indirect data load target (via $A565)
0x00A9E5|$02:$A9D5:07 14 00 04 88
0x00A9EA|$02:$A9DA:0C 16 11 04 85
0x00A9EF|$02:$A9DF:0F 13 13 04 86
0x00A9F4|$02:$A9E4:13 14 00 04 89
0x00A9F9|$02:$A9E9:0D 10 11 04 87
0x00A9FE|$02:$A9EE:0C 0F 02 05 BA
0x00AA03|$02:$A9F3:0E 0F 02 05 BA
; indirect data load target
0x00AA08|$02:$A9F8:FF
; Map ID #$17: Hargon's Castle 7F
; indirect data load target (via $A567)
0x00AA09|$02:$A9F9:06 04 02 04 00
0x00AA0E|$02:$A9FE:07 04 02 05 BB
0x00AA13|$02:$AA03:08 04 02 04 00
; indirect data load target
0x00AA18|$02:$AA08:FF
; Map ID #$18: Charlock Castle B8
; indirect data load target (via $A569)
0x00AA19|$02:$AA09:0A 10 02 05 BC
; indirect data load target
0x00AA1E|$02:$AA0E:FF
; Map ID #$19: Shrine NW of Midenhall
; indirect data load target (via $A56B)
0x00AA1F|$02:$AA0F:05 05 03 05 9B
; indirect data load target
0x00AA24|$02:$AA14:FF
; Map ID #$1A: Shrine SW of Cannock
; indirect data load target (via $A56D)
0x00AA25|$02:$AA15:05 01 12 0B 9C
0x00AA2A|$02:$AA1A:02 04 00 0A BD
0x00AA2F|$02:$AA1F:05 04 00 0A BE
; indirect data load target
0x00AA34|$02:$AA24:FF
; Map ID #$1B: Shrine NW of Lianport
; indirect data load target (via $A56F)
0x00AA35|$02:$AA25:04 01 11 0B 8A
; indirect data load target
0x00AA3A|$02:$AA2A:FF
; Map ID #$1C: Shrine SE of Rimuldar
; indirect data load target (via $A571)
0x00AA3B|$02:$AA2B:04 04 03 0B BF
; indirect data load target
0x00AA40|$02:$AA30:FF
; Map ID #$1D: Shrine NW of Beran
; indirect data load target (via $A573)
0x00AA41|$02:$AA31:04 03 02 0B 7B
; indirect data load target
0x00AA46|$02:$AA36:FF
; Map ID #$1E: Shrine NW of Zahan
; indirect data load target (via $A575)
0x00AA47|$02:$AA37:03 03 02 04 00
; indirect data load target
0x00AA4C|$02:$AA3C:FF
; Map ID #$1F: Rhone Shrine
; indirect data load target (via $A577)
0x00AA4D|$02:$AA3D:04 02 02 05 C1
0x00AA52|$02:$AA42:04 06 03 07 8B
; indirect data load target
0x00AA57|$02:$AA47:FF
; Map ID #$20: Shrine SW of Moonbrooke
; indirect data load target (via $A579)
0x00AA58|$02:$AA48:04 04 00 05 C2
; indirect data load target
0x00AA5D|$02:$AA4D:FF
; Map ID #$21: Rhone Cave Shrine
; indirect data load target (via $A57B)
0x00AA5E|$02:$AA4E:00 07 10 05 49
0x00AA63|$02:$AA53:02 02 01 0B 8C
; indirect data load target
0x00AA68|$02:$AA58:FF
; Map ID #$22: Shrine S of Midenhall
; indirect data load target (via $A57D)
0x00AA69|$02:$AA59:07 01 02 0B 47
0x00AA6E|$02:$AA5E:07 02 00 04 00
; indirect data load target
0x00AA73|$02:$AA63:FF
; Map ID #$40: Spring of Bravery
; indirect data load target (via $A5B9)
0x00AA74|$02:$AA64:21 0C 03 08 CD
0x00AA79|$02:$AA69:09 0A 02 0B D0
; indirect data load target
0x00AA7E|$02:$AA6E:FF
; Map ID #$59: Wind Tower 2F
; indirect data load target (via $A5EB)
0x00AA7F|$02:$AA6F:16 02 00 0A C3
; indirect data load target
0x00AA84|$02:$AA74:FF
; Map ID #$60: Dragon Horn South 1F
; indirect data load target (via $A5F9)
0x00AA85|$02:$AA75:06 03 02 06 CE
; indirect data load target
0x00AA8A|$02:$AA7A:FF
; Map ID #$56: Lighthouse 7F
; indirect data load target (via $A5E5)
0x00AA8B|$02:$AA7B:0E 0A 02 0B D1
0x00AA90|$02:$AA80:0E 04 02 05 00
; indirect data load target
0x00AA95|$02:$AA85:FF
; Map ID #$51: Lighthouse 2F
; indirect data load target (via $A5DB)
0x00AA96|$02:$AA86:22 1F 02 0B D8
0x00AA9B|$02:$AA8B:1D 1C 02 FF 00
0x00AAA0|$02:$AA90:1F 1C 02 FF 00
0x00AAA5|$02:$AA95:1F 1E 03 FF 00
; indirect data load target
0x00AAAA|$02:$AA9A:FF
; Map ID #$57: Lighthouse 8F
; indirect data load target (via $A5E7)
0x00AAAB|$02:$AA9B:0A 0F 02 0A D6
; indirect data load target
0x00AAB0|$02:$AAA0:FF
; Map ID #$49: Moon Tower 1F
; indirect data load target (via $A5CB)
0x00AAB1|$02:$AAA1:12 04 02 0B C4
; indirect data load target
0x00AAB6|$02:$AAA6:FF
; Map ID #$2F: Sea Cave B2
; indirect data load target (via $A597)
0x00AAB7|$02:$AAA7:0D 02 02 0A CA
0x00AABC|$02:$AAAC:09 1E 03 0A CF
; indirect data load target
0x00AAC1|$02:$AAB1:FF
; Map ID #$33: Sea Cave B5
; indirect data load target (via $A59F)
0x00AAC2|$02:$AAB2:11 0B 03 05 D3
0x00AAC7|$02:$AAB7:14 0A 03 FF 00
; indirect data load target
0x00AACC|$02:$AABC:FF
; Map ID #$55: Lighthouse 6F
; indirect data load target (via $A5E3)
0x00AACD|$02:$AABD:01 19 02 0B D1
; indirect data load target
0x00AAD2|$02:$AAC2:FF
; Map ID #$54: Lighthouse 5F
; indirect data load target (via $A5E1)
0x00AAD3|$02:$AAC3:19 17 00 0B D1
; indirect data load target
0x00AAD8|$02:$AAC8:FF
; Map ID #$53: Lighthouse 4F
; indirect data load target (via $A5DF)
0x00AAD9|$02:$AAC9:1A 13 02 0B D1
; indirect data load target
0x00AADE|$02:$AACE:FF
; Map ID #$52: Lighthouse 3F
; indirect data load target (via $A5DD)
0x00AADF|$02:$AACF:14 1E 01 0B D1
; indirect data load target
0x00AAE4|$02:$AAD4:FF
; Map ID #$29: Rubiss' Shrine B7
; indirect data load target (via $A58B)
0x00AAE5|$02:$AAD5:02 02 00 FF 00
0x00AAEA|$02:$AADA:04 02 00 FF 00
0x00AAEF|$02:$AADF:02 04 00 FF 00
0x00AAF4|$02:$AAE4:04 04 00 FF 00
; indirect data load target
0x00AAF9|$02:$AAE9:FF
; Map ID #$6D: Moonbrooke (prologue)
; indirect data load target (via $A613)
0x00AAFA|$02:$AAEA:03 02 03 FF 00
0x00AAFF|$02:$AAEF:09 64 02 01 00
0x00AB04|$02:$AAF4:08 0A 02 02 00
0x00AB09|$02:$AAF9:0B 0B 02 0A 00
0x00AB0E|$02:$AAFE:02 13 02 0A 00
0x00AB13|$02:$AB03:13 0B 01 05 00
0x00AB18|$02:$AB08:64 64 02 05 00
0x00AB1D|$02:$AB0D:64 64 00 05 00
0x00AB22|$02:$AB12:0A 02 01 FF 00
0x00AB27|$02:$AB17:12 02 03 FF 00
0x00AB2C|$02:$AB1C:64 64 02 05 00
0x00AB31|$02:$AB21:64 64 02 05 00
0x00AB36|$02:$AB26:64 64 02 05 00
0x00AB3B|$02:$AB2B:64 64 02 05 00
0x00AB40|$02:$AB30:64 64 02 05 00
0x00AB45|$02:$AB35:64 64 02 05 00
0x00AB4A|$02:$AB3A:64 64 00 05 00
0x00AB4F|$02:$AB3F:10 12 00 0A 00
0x00AB54|$02:$AB44:11 12 00 0A 00
0x00AB59|$02:$AB49:02 02 01 0A 00
; indirect data load target
0x00AB5E|$02:$AB4E:FF
; Map ID #$6E: Midenhall 1F (prologue)
; indirect data load target (via $A615)
0x00AB5F|$02:$AB4F:0F 17 00 0A 00
0x00AB64|$02:$AB54:0D 0F 01 0A 00
0x00AB69|$02:$AB59:11 0F 03 0A 00
0x00AB6E|$02:$AB5E:0A 14 01 06 00
0x00AB73|$02:$AB63:15 13 03 06 00
; indirect data load target
0x00AB78|$02:$AB68:FF
; Map ID #$6F: World Map at Moonbrooke (prologue)
; indirect data load target (via $A617)
0x00AB79|$02:$AB69:61 6E 00 FF 00
0x00AB7E|$02:$AB6E:62 6E 00 FF 00
0x00AB83|$02:$AB73:61 6F 00 FF 00
0x00AB88|$02:$AB78:62 6F 00 FF 00
0x00AB8D|$02:$AB7D:63 6F 01 0A 00
; indirect data load target
0x00AB92|$02:$AB82:FF
; Map ID #$70: World Map at Midenhall (prologue)
; indirect data load target (via $A619)
0x00AB93|$02:$AB83:CF 38 01 0A 00
; indirect data load target
0x00AB98|$02:$AB88:FF

; data -> code
; external control flow target (from $0F:$E4AD)
0x00AB99|$02:$AB89:A5 0C   	LDA $0C    	; save $0C-$11 on the stack
0x00AB9B|$02:$AB8B:48      	PHA        
0x00AB9C|$02:$AB8C:A5 0D   	LDA $0D    
0x00AB9E|$02:$AB8E:48      	PHA        
0x00AB9F|$02:$AB8F:A5 0E   	LDA $0E    
0x00ABA1|$02:$AB91:48      	PHA        
0x00ABA2|$02:$AB92:A5 0F   	LDA $0F    
0x00ABA4|$02:$AB94:48      	PHA        
0x00ABA5|$02:$AB95:A5 10   	LDA $10    
0x00ABA7|$02:$AB97:48      	PHA        
0x00ABA8|$02:$AB98:A5 11   	LDA $11    
0x00ABAA|$02:$AB9A:48      	PHA        
; call to code in a different bank ($0F:$C1DC)
0x00ABAB|$02:$AB9B:20 DC C1	JSR $C1DC  	; set $6007 = #$00, set $00 = #$01, wait for interrupt, set $00 = #$FF
0x00ABAE|$02:$AB9E:A5 23   	LDA $23    	; map pointer, low byte
0x00ABB0|$02:$ABA0:85 0C   	STA $0C    
0x00ABB2|$02:$ABA2:A5 24   	LDA $24    	; map pointer, high byte
0x00ABB4|$02:$ABA4:85 0D   	STA $0D    
0x00ABB6|$02:$ABA6:20 77 B0	JSR $B077  	; read the first 3 bytes of map data, initialize the map width, map height, map buffer index bit width, tile ID bit width and $6158 (unused?); leaves $0C-$0D pointing at map data byte 3
0x00ABB9|$02:$ABA9:20 BF AB	JSR $ABBF  
0x00ABBC|$02:$ABAC:68      	PLA        	; restore $0C-$11 from the stack
0x00ABBD|$02:$ABAD:85 11   	STA $11    
0x00ABBF|$02:$ABAF:68      	PLA        
0x00ABC0|$02:$ABB0:85 10   	STA $10    
0x00ABC2|$02:$ABB2:68      	PLA        
0x00ABC3|$02:$ABB3:85 0F   	STA $0F    
0x00ABC5|$02:$ABB5:68      	PLA        
0x00ABC6|$02:$ABB6:85 0E   	STA $0E    
0x00ABC8|$02:$ABB8:68      	PLA        
0x00ABC9|$02:$ABB9:85 0D   	STA $0D    
0x00ABCB|$02:$ABBB:68      	PLA        
0x00ABCC|$02:$ABBC:85 0C   	STA $0C    
0x00ABCE|$02:$ABBE:60      	RTS        

; control flow target (from $ABA9)
0x00ABCF|$02:$ABBF:20 41 AC	JSR $AC41  	; load map tiles
0x00ABD2|$02:$ABC2:20 62 AC	JSR $AC62  	; switch to map roofing phase and process roofing updates
0x00ABD5|$02:$ABC5:20 C9 AB	JSR $ABC9  
0x00ABD8|$02:$ABC8:60      	RTS        

; control flow target (from $ABC5)
0x00ABD9|$02:$ABC9:A5 1F   	LDA $1F    	; some kind of map type (#$00: World Map, #$01: other non-dungeon maps, #$02: maps #$2B - #$43 inclusive, #$03: maps >= #$44, #$FF => game menu)
0x00ABDB|$02:$ABCB:C9 01   	CMP #$01   
0x00ABDD|$02:$ABCD:F0 01   	BEQ $ABD0  	; scan through map and replace Vertical Wall tiles that don't have a Vertical Wall tile with the same roofing below them with Horizontal Wall tiles
0x00ABDF|$02:$ABCF:60      	RTS        

; scan through map and replace Vertical Wall tiles that don't have a Vertical Wall tile with the same roofing below them with Horizontal Wall tiles
; control flow target (from $ABCD)
0x00ABE0|$02:$ABD0:A9 00   	LDA #$00   	; set $0C-$0D to address of map buffer at $7800
0x00ABE2|$02:$ABD2:85 0C   	STA $0C    
0x00ABE4|$02:$ABD4:A9 78   	LDA #$78   
0x00ABE6|$02:$ABD6:85 0D   	STA $0D    
0x00ABE8|$02:$ABD8:A9 00   	LDA #$00   
0x00ABEA|$02:$ABDA:85 6D   	STA $6D    	; current row
; process row
; control flow target (from $AC3E)
0x00ABEC|$02:$ABDC:A0 00   	LDY #$00   	; current column
; process column
; control flow target (from $AC2B)
0x00ABEE|$02:$ABDE:B1 0C   	LDA ($0C),Y	; current map tile
0x00ABF0|$02:$ABE0:85 6E   	STA $6E    	; current map tile
0x00ABF2|$02:$ABE2:29 1F   	AND #$1F   	; ignore roofing
0x00ABF4|$02:$ABE4:C9 05   	CMP #$05   	; Map Tile ID #$05: Vertical Wall
0x00ABF6|$02:$ABE6:D0 40   	BNE $AC28  	; update map co-ordinates
0x00ABF8|$02:$ABE8:A5 6E   	LDA $6E    	; current map tile
0x00ABFA|$02:$ABEA:29 E0   	AND #$E0   	; pick out the roofing
0x00ABFC|$02:$ABEC:85 6E   	STA $6E    	; current map tile's roofing
0x00ABFE|$02:$ABEE:A6 6D   	LDX $6D    	; current row
0x00AC00|$02:$ABF0:E8      	INX        	; next row
0x00AC01|$02:$ABF1:E4 0F   	CPX $0F    	; map height
0x00AC03|$02:$ABF3:90 08   	BCC $ABFD  	; not processing bottom row of map
0x00AC05|$02:$ABF5:A5 20   	LDA $20    	; map exterior border tile ID (#$00 = Road, #$01 = Grass, #$02 = Sand, #$03 = Tree, #$04 = Water, #$05 = Vertical Wall, #$06 = Shrub, #$07 = Horizontal Wall, #$08 = Swamp, ..., #$20 = Ceiling Alternating?, #$21 = Ceiling Down?, #$24 = Black?, #$28 = Blue?)
0x00AC07|$02:$ABF7:C9 05   	CMP #$05   	; Map Tile ID #$05: Vertical Wall
0x00AC09|$02:$ABF9:D0 27   	BNE $AC22  	; replace Vertical Wall tile with Horizontal Wall tile
0x00AC0B|$02:$ABFB:F0 2B   	BEQ $AC28  	; update map co-ordinates
; not processing bottom row of map
; control flow target (from $ABF3)
0x00AC0D|$02:$ABFD:A5 0C   	LDA $0C    	; set $72-$73 to current map pos + 1 row
0x00AC0F|$02:$ABFF:18      	CLC        
0x00AC10|$02:$AC00:65 0E   	ADC $0E    	; map width
0x00AC12|$02:$AC02:85 72   	STA $72    
0x00AC14|$02:$AC04:A5 0D   	LDA $0D    
0x00AC16|$02:$AC06:69 00   	ADC #$00   
0x00AC18|$02:$AC08:85 73   	STA $73    
0x00AC1A|$02:$AC0A:B1 72   	LDA ($72),Y	; tile below current map tile
0x00AC1C|$02:$AC0C:85 6F   	STA $6F    	; tile below current map tile
0x00AC1E|$02:$AC0E:29 E0   	AND #$E0   	; pick out the roofing
0x00AC20|$02:$AC10:C5 6E   	CMP $6E    	; current map tile's roofing
0x00AC22|$02:$AC12:F0 02   	BEQ $AC16  	; tile below current map tile has same roofing
0x00AC24|$02:$AC14:10 12   	BPL $AC28  	; update map co-ordinates
; tile below current map tile has same roofing
; control flow target (from $AC12)
0x00AC26|$02:$AC16:A5 6F   	LDA $6F    	; tile below current map tile
0x00AC28|$02:$AC18:29 1F   	AND #$1F   	; ignore the roofing
0x00AC2A|$02:$AC1A:C9 05   	CMP #$05   	; Map Tile ID #$05: Vertical Wall
0x00AC2C|$02:$AC1C:F0 0A   	BEQ $AC28  	; update map co-ordinates
0x00AC2E|$02:$AC1E:C9 07   	CMP #$07   	; Map Tile ID #$07: Horizontal Wall
0x00AC30|$02:$AC20:F0 06   	BEQ $AC28  	; update map co-ordinates
; replace Vertical Wall tile with Horizontal Wall tile
; control flow target (from $ABF9)
0x00AC32|$02:$AC22:A9 07   	LDA #$07   	; Map Tile ID #$07: Horizontal Wall
0x00AC34|$02:$AC24:05 6E   	ORA $6E    	; current map tile's roofing
0x00AC36|$02:$AC26:91 0C   	STA ($0C),Y	; current map tile
; update map co-ordinates
; control flow target (from $ABE6, $ABFB, $AC14, $AC1C, $AC20)
0x00AC38|$02:$AC28:C8      	INY        	; current column
0x00AC39|$02:$AC29:C4 0E   	CPY $0E    	; map width
0x00AC3B|$02:$AC2B:90 B1   	BCC $ABDE  	; process column
0x00AC3D|$02:$AC2D:A5 0C   	LDA $0C    	; add map width to 16-bit $0C-$0D
0x00AC3F|$02:$AC2F:18      	CLC        
0x00AC40|$02:$AC30:65 0E   	ADC $0E    	; map width
0x00AC42|$02:$AC32:85 0C   	STA $0C    
0x00AC44|$02:$AC34:90 02   	BCC $AC38  
0x00AC46|$02:$AC36:E6 0D   	INC $0D    
; control flow target (from $AC34)
0x00AC48|$02:$AC38:E6 6D   	INC $6D    	; current row
0x00AC4A|$02:$AC3A:A5 6D   	LDA $6D    	; current row
0x00AC4C|$02:$AC3C:C5 0F   	CMP $0F    	; map height
0x00AC4E|$02:$AC3E:90 9C   	BCC $ABDC  	; process row
0x00AC50|$02:$AC40:60      	RTS        

; load map tiles
; control flow target (from $ABBF)
0x00AC51|$02:$AC41:20 77 AC	JSR $AC77  	; initialize map bit index $614D, map roofing phase flag $614E, and "map stack" index $6156 to #$00
0x00AC54|$02:$AC44:20 83 AC	JSR $AC83  	; read 1 tile ID of map data, fill map interior background with that tile
; process next map control code
; control flow target (from $AC73, $AD3C, $AE11, $AE3C, $AE86)
0x00AC57|$02:$AC47:20 C3 AC	JSR $ACC3  	; read 2 bits of map data into $6D-$6E, updating read variables as necessary and returning $6D in A
; process map control code in A
; control flow target (from $AD3F)
0x00AC5A|$02:$AC4A:C9 00   	CMP #$00   
0x00AC5C|$02:$AC4C:F0 0B   	BEQ $AC59  	; map data 0b00 handler: set current 1x1 or 2x2 block of tiles
0x00AC5E|$02:$AC4E:C9 01   	CMP #$01   
0x00AC60|$02:$AC50:F0 0A   	BEQ $AC5C  	; map data 0b01 handler: read 2 co-ordinates of map data and depending on roofing phase, fill the map buffer between those two points with the current 1x1 or 2x2 block of tile IDs or update the roofing between those two points
0x00AC62|$02:$AC52:C9 02   	CMP #$02   
0x00AC64|$02:$AC54:F0 09   	BEQ $AC5F  	; map data 0b10 handler: read 1 co-ordinate of map data and then start drawing the current tile ID from there, moving around as dictated by map data
0x00AC66|$02:$AC56:4C 36 AE	JMP $AE36  	; map data 0b11 handler: read 1 co-ordinate of map data and then depending on roofing phase, either write the current 1x1 or 2x2 block of tile IDs there or update its roofing

; map data 0b00 handler: set current 1x1 or 2x2 block of tiles
; control flow target (from $AC4C)
0x00AC69|$02:$AC59:4C 0D AD	JMP $AD0D  	; map data 0b00 handler: set the current 1x1 or 2x2 block of tile IDs

; map data 0b01 handler: read 2 co-ordinates of map data and depending on roofing phase, fill the map buffer between those two points with the current 1x1 or 2x2 block of tile IDs or update the roofing between those two points
; control flow target (from $AC50)
0x00AC6C|$02:$AC5C:4C 42 AD	JMP $AD42  	; map data 0b01 handler: read 2 co-ordinates of map data and depending on roofing phase, fill the map buffer between those two points with the current 1x1 or 2x2 block of tile IDs or update the roofing between those two points

; map data 0b10 handler: read 1 co-ordinate of map data and then start drawing the current tile ID from there, moving around as dictated by map data
; control flow target (from $AC54)
0x00AC6F|$02:$AC5F:4C 3F AE	JMP $AE3F  	; map data 0b10 handler: read 1 co-ordinate of map data and then start drawing the current tile ID from there, moving around as dictated by map data

; switch to map roofing phase and process roofing updates
; control flow target (from $ABC2)
0x00AC72|$02:$AC62:A9 FF   	LDA #$FF   
0x00AC74|$02:$AC64:8D 4E 61	STA $614E  	; map roofing phase flag
0x00AC77|$02:$AC67:A9 02   	LDA #$02   
0x00AC79|$02:$AC69:20 CA AC	JSR $ACCA  	; read A bits of map data into $6D-$6E, updating read variables as necessary and returning $6D in A
0x00AC7C|$02:$AC6C:C9 00   	CMP #$00   
0x00AC7E|$02:$AC6E:F0 06   	BEQ $AC76  	; #$00 => no roofing updates, so skip this phase
0x00AC80|$02:$AC70:8D 57 61	STA $6157  	; map tile ID bit size
0x00AC83|$02:$AC73:20 47 AC	JSR $AC47  	; process next map control code
; control flow target (from $AC6E)
0x00AC86|$02:$AC76:60      	RTS        

; initialize map bit index $614D, map roofing phase flag $614E, and "map stack" index $6156 to #$00
; control flow target (from $AC41)
0x00AC87|$02:$AC77:A9 00   	LDA #$00   
0x00AC89|$02:$AC79:8D 4D 61	STA $614D  	; map bit index; how many times to LSR #$80 so it lines up with the current map bit
0x00AC8C|$02:$AC7C:8D 4E 61	STA $614E  	; map roofing phase flag
0x00AC8F|$02:$AC7F:8D 56 61	STA $6156  	; index to top of "map stack" at $616B for 0b10 handler
0x00AC92|$02:$AC82:60      	RTS        

; read 1 tile ID of map data, fill map interior background with that tile
; control flow target (from $AC44)
0x00AC93|$02:$AC83:20 A8 AC	JSR $ACA8  	; read 1 tile ID of map data into $6D-$6E, updating read variables as necessary and returning $6D in A
0x00AC96|$02:$AC86:48      	PHA        	; map interior background tile ID
0x00AC97|$02:$AC87:A9 00   	LDA #$00   	; initialize map buffer address $10-$11 to $7800
0x00AC99|$02:$AC89:85 10   	STA $10    	; map buffer address, low byte
0x00AC9B|$02:$AC8B:A9 78   	LDA #$78   
0x00AC9D|$02:$AC8D:85 11   	STA $11    	; map buffer address, high byte
0x00AC9F|$02:$AC8F:68      	PLA        	; map interior background tile ID
0x00ACA0|$02:$AC90:A4 0F   	LDY $0F    	; map height
0x00ACA2|$02:$AC92:84 6D   	STY $6D    	; number of rows left
0x00ACA4|$02:$AC94:A0 00   	LDY #$00   
; control flow target (from $ACA5)
0x00ACA6|$02:$AC96:A6 0E   	LDX $0E    	; map width
; control flow target (from $ACA1)
0x00ACA8|$02:$AC98:91 10   	STA ($10),Y	; write map interior background tile ID to buffer
0x00ACAA|$02:$AC9A:E6 10   	INC $10    	; INC 16-bit write address
0x00ACAC|$02:$AC9C:D0 02   	BNE $ACA0  
0x00ACAE|$02:$AC9E:E6 11   	INC $11    
; control flow target (from $AC9C)
0x00ACB0|$02:$ACA0:CA      	DEX        	; number of columns left
0x00ACB1|$02:$ACA1:D0 F5   	BNE $AC98  
0x00ACB3|$02:$ACA3:C6 6D   	DEC $6D    	; number of rows left
0x00ACB5|$02:$ACA5:D0 EF   	BNE $AC96  
0x00ACB7|$02:$ACA7:60      	RTS        

; read 1 tile ID of map data into $6D-$6E, updating read variables as necessary and returning $6D in A
; control flow target (from $AC83, $AD12, $AD2A, $AD30, $AD36)
0x00ACB8|$02:$ACA8:AD 57 61	LDA $6157  	; map tile ID bit size
0x00ACBB|$02:$ACAB:4C CA AC	JMP $ACCA  	; read A bits of map data into $6D-$6E, updating read variables as necessary and returning $6D in A

; read 1 co-ordinate of map data into $6D-$6E, set $75-$76 to that map buffer address
; control flow target (from $AE36, $AE3F)
0x00ACBE|$02:$ACAE:20 C7 AC	JSR $ACC7  	; read 1 co-ordinate of map data into $6D-$6E, updating read variables as necessary and returning $6D in A
0x00ACC1|$02:$ACB1:A9 00   	LDA #$00   
0x00ACC3|$02:$ACB3:A0 78   	LDY #$78   
0x00ACC5|$02:$ACB5:A2 6D   	LDX #$6D   
0x00ACC7|$02:$ACB7:20 0A B0	JSR $B00A  	; given A, X, and Y, ($00,X-$01,X)  = ($00,X-$01,X) + (Y * $100 + A)
0x00ACCA|$02:$ACBA:A5 6D   	LDA $6D    
0x00ACCC|$02:$ACBC:85 75   	STA $75    
0x00ACCE|$02:$ACBE:A5 6E   	LDA $6E    
0x00ACD0|$02:$ACC0:85 76   	STA $76    
0x00ACD2|$02:$ACC2:60      	RTS        

; read 2 bits of map data into $6D-$6E, updating read variables as necessary and returning $6D in A
; control flow target (from $AC47, $AD18)
0x00ACD3|$02:$ACC3:A9 02   	LDA #$02   
0x00ACD5|$02:$ACC5:D0 03   	BNE $ACCA  	; read A bits of map data into $6D-$6E, updating read variables as necessary and returning $6D in A
; read 1 co-ordinate of map data into $6D-$6E, updating read variables as necessary and returning $6D in A
; control flow target (from $ACAE, $AD42, $AD5A)
0x00ACD7|$02:$ACC7:AD 50 61	LDA $6150  	; map buffer index bit size
; read A bits of map data into $6D-$6E, updating read variables as necessary and returning $6D in A
; control flow target (from $AC69, $ACAB, $ACC5, $AE52, $AF1F)
0x00ACDA|$02:$ACCA:AA      	TAX        
0x00ACDB|$02:$ACCB:A9 00   	LDA #$00   
0x00ACDD|$02:$ACCD:85 6D   	STA $6D    
0x00ACDF|$02:$ACCF:85 6E   	STA $6E    
; control flow target (from $ACD9)
0x00ACE1|$02:$ACD1:20 DE AC	JSR $ACDE  	; read 1 bit of map data into C, updating read variables as necessary
0x00ACE4|$02:$ACD4:26 6D   	ROL $6D    	; rotate C into 16-bit $6D-$6E
0x00ACE6|$02:$ACD6:26 6E   	ROL $6E    
0x00ACE8|$02:$ACD8:CA      	DEX        
0x00ACE9|$02:$ACD9:D0 F6   	BNE $ACD1  
0x00ACEB|$02:$ACDB:A5 6D   	LDA $6D    
0x00ACED|$02:$ACDD:60      	RTS        

; read 1 bit of map data into C, updating read variables as necessary
; control flow target (from $ACD1, $AD1F, $AE48, $AE61, $AE89)
0x00ACEE|$02:$ACDE:A9 80   	LDA #$80   
0x00ACF0|$02:$ACE0:AC 4D 61	LDY $614D  	; map bit index; how many times to LSR #$80 so it lines up with the current map bit
; control flow target (from $ACE7)
0x00ACF3|$02:$ACE3:F0 05   	BEQ $ACEA  
0x00ACF5|$02:$ACE5:4A      	LSR        
0x00ACF6|$02:$ACE6:88      	DEY        
0x00ACF7|$02:$ACE7:4C E3 AC	JMP $ACE3  

; control flow target (from $ACE3)
0x00ACFA|$02:$ACEA:A0 00   	LDY #$00   
0x00ACFC|$02:$ACEC:31 0C   	AND ($0C),Y
0x00ACFE|$02:$ACEE:85 7B   	STA $7B    	; dedicated temporary storage for byte containing current map bit; PHA/PLA would have been better
0x00AD00|$02:$ACF0:EE 4D 61	INC $614D  	; map bit index; how many times to LSR #$80 so it lines up with the current map bit
0x00AD03|$02:$ACF3:AD 4D 61	LDA $614D  	; map bit index; how many times to LSR #$80 so it lines up with the current map bit
0x00AD06|$02:$ACF6:C9 08   	CMP #$08   	; 8 bits per byte
0x00AD08|$02:$ACF8:90 0B   	BCC $AD05  	; CLC if $7B is #$00, SEC otherwise
0x00AD0A|$02:$ACFA:A9 00   	LDA #$00   	; otherwise reset to #$00 and INC 16-bit map data address $0C-$0D
0x00AD0C|$02:$ACFC:8D 4D 61	STA $614D  	; map bit index; how many times to LSR #$80 so it lines up with the current map bit
0x00AD0F|$02:$ACFF:E6 0C   	INC $0C    
0x00AD11|$02:$AD01:D0 02   	BNE $AD05  	; CLC if $7B is #$00, SEC otherwise
0x00AD13|$02:$AD03:E6 0D   	INC $0D    
; CLC if $7B is #$00, SEC otherwise
; control flow target (from $ACF8, $AD01)
0x00AD15|$02:$AD05:A5 7B   	LDA $7B    	; dedicated temporary storage for byte containing current map bit; PHA/PLA would have been better
0x00AD17|$02:$AD07:F0 02   	BEQ $AD0B  
0x00AD19|$02:$AD09:38      	SEC        
0x00AD1A|$02:$AD0A:60      	RTS        

; control flow target (from $AD07)
0x00AD1B|$02:$AD0B:18      	CLC        
0x00AD1C|$02:$AD0C:60      	RTS        

; map data 0b00 handler: set the current 1x1 or 2x2 block of tile IDs
; control flow target (from $AC59)
0x00AD1D|$02:$AD0D:A9 00   	LDA #$00   
0x00AD1F|$02:$AD0F:8D 4F 61	STA $614F  	; flag for whether 0b00 handler wrote tile IDs to $6153-$6155
0x00AD22|$02:$AD12:20 A8 AC	JSR $ACA8  	; read 1 tile ID of map data into $6D-$6E, updating read variables as necessary and returning $6D in A
0x00AD25|$02:$AD15:8D 52 61	STA $6152  	; first tile ID from 0b00 handler
0x00AD28|$02:$AD18:20 C3 AC	JSR $ACC3  	; read 2 bits of map data into $6D-$6E, updating read variables as necessary and returning $6D in A
0x00AD2B|$02:$AD1B:C9 00   	CMP #$00   
0x00AD2D|$02:$AD1D:D0 20   	BNE $AD3F  	; loop to process map control code in A
0x00AD2F|$02:$AD1F:20 DE AC	JSR $ACDE  	; read 1 bit of map data into C, updating read variables as necessary
0x00AD32|$02:$AD22:90 01   	BCC $AD25  	; flag 2x2 block, read 3 tile IDs of map data into $6153-$6155
0x00AD34|$02:$AD24:60      	RTS        	; RTS to end this map phase

; flag 2x2 block, read 3 tile IDs of map data into $6153-$6155
; control flow target (from $AD22)
0x00AD35|$02:$AD25:A9 FF   	LDA #$FF   
0x00AD37|$02:$AD27:8D 4F 61	STA $614F  	; flag for whether 0b00 handler wrote tile IDs to $6153-$6155
0x00AD3A|$02:$AD2A:20 A8 AC	JSR $ACA8  	; read 1 tile ID of map data into $6D-$6E, updating read variables as necessary and returning $6D in A
0x00AD3D|$02:$AD2D:8D 53 61	STA $6153  	; second tile ID from 0b00 handler
0x00AD40|$02:$AD30:20 A8 AC	JSR $ACA8  	; read 1 tile ID of map data into $6D-$6E, updating read variables as necessary and returning $6D in A
0x00AD43|$02:$AD33:8D 54 61	STA $6154  	; third tile ID from 0b00 handler
0x00AD46|$02:$AD36:20 A8 AC	JSR $ACA8  	; read 1 tile ID of map data into $6D-$6E, updating read variables as necessary and returning $6D in A
0x00AD49|$02:$AD39:8D 55 61	STA $6155  	; fourth tile ID from 0b00 handler
0x00AD4C|$02:$AD3C:4C 47 AC	JMP $AC47  	; process next map control code

; loop to process map control code in A
; control flow target (from $AD1D)
0x00AD4F|$02:$AD3F:4C 4A AC	JMP $AC4A  	; process map control code in A

; map data 0b01 handler: read 2 co-ordinates of map data and depending on roofing phase, fill the map buffer between those two points with the current 1x1 or 2x2 block of tile IDs or update the roofing between those two points
; control flow target (from $AC5C)
0x00AD52|$02:$AD42:20 C7 AC	JSR $ACC7  	; read 1 co-ordinate of map data into $6D-$6E, updating read variables as necessary and returning $6D in A
0x00AD55|$02:$AD45:A5 6D   	LDA $6D    	; useless op: A already contains $6D
0x00AD57|$02:$AD47:85 74   	STA $74    	; copy map buffer index from $6D-$6E to $74-$75
0x00AD59|$02:$AD49:A5 6E   	LDA $6E    
0x00AD5B|$02:$AD4B:85 75   	STA $75    
0x00AD5D|$02:$AD4D:A5 0E   	LDA $0E    	; map width
0x00AD5F|$02:$AD4F:A2 6D   	LDX #$6D   
0x00AD61|$02:$AD51:20 60 B0	JSR $B060  	; given A and X, perform 16-bit division: ($00,X-$01,X) / A = quotient in ($00,X-$01,X), remainder in A
0x00AD64|$02:$AD54:85 70   	STA $70    	; start column
0x00AD66|$02:$AD56:A5 6D   	LDA $6D    	; start row
0x00AD68|$02:$AD58:85 71   	STA $71    	; start row
0x00AD6A|$02:$AD5A:20 C7 AC	JSR $ACC7  	; read 1 co-ordinate of map data into $6D-$6E, updating read variables as necessary and returning $6D in A
0x00AD6D|$02:$AD5D:A5 0E   	LDA $0E    	; map width
0x00AD6F|$02:$AD5F:A2 6D   	LDX #$6D   
0x00AD71|$02:$AD61:20 60 B0	JSR $B060  	; given A and X, perform 16-bit division: ($00,X-$01,X) / A = quotient in ($00,X-$01,X), remainder in A
0x00AD74|$02:$AD64:85 72   	STA $72    	; end column
0x00AD76|$02:$AD66:A5 6D   	LDA $6D    	; end row
0x00AD78|$02:$AD68:85 73   	STA $73    	; end row
0x00AD7A|$02:$AD6A:A9 00   	LDA #$00   
0x00AD7C|$02:$AD6C:A0 78   	LDY #$78   
0x00AD7E|$02:$AD6E:A2 74   	LDX #$74   
0x00AD80|$02:$AD70:20 0A B0	JSR $B00A  	; given A, X, and Y, ($00,X-$01,X)  = ($00,X-$01,X) + (Y * $100 + A); $74-$75 is now address in map buffer
0x00AD83|$02:$AD73:A5 73   	LDA $73    	; end row
0x00AD85|$02:$AD75:38      	SEC        
0x00AD86|$02:$AD76:E5 71   	SBC $71    	; start row
0x00AD88|$02:$AD78:85 71   	STA $71    	; difference between row offsets
0x00AD8A|$02:$AD7A:A5 72   	LDA $72    	; end column
0x00AD8C|$02:$AD7C:38      	SEC        
0x00AD8D|$02:$AD7D:E5 70   	SBC $70    	; start column
0x00AD8F|$02:$AD7F:85 70   	STA $70    	; difference between column offsets
0x00AD91|$02:$AD81:AD 4F 61	LDA $614F  	; flag for whether 0b00 handler wrote tile IDs to $6153-$6155
0x00AD94|$02:$AD84:F0 04   	BEQ $AD8A  
0x00AD96|$02:$AD86:46 70   	LSR $70    	; if flag set, we're writing 2x2 blocks instead of 1x1, so divide the differences by 2
0x00AD98|$02:$AD88:46 71   	LSR $71    
; control flow target (from $AD84)
0x00AD9A|$02:$AD8A:E6 70   	INC $70    	; convert to number of columns
0x00AD9C|$02:$AD8C:E6 71   	INC $71    	; convert to number of rows
; update map buffer
; control flow target (from $AE14)
0x00AD9E|$02:$AD8E:AD 52 61	LDA $6152  	; first tile ID from 0b00 handler
0x00ADA1|$02:$AD91:A6 70   	LDX $70    	; number of columns to copy
; update map buffer row
; control flow target (from $ADE3, $ADFD)
0x00ADA3|$02:$AD93:A0 00   	LDY #$00   
0x00ADA5|$02:$AD95:48      	PHA        
0x00ADA6|$02:$AD96:AD 4E 61	LDA $614E  	; map roofing phase flag
0x00ADA9|$02:$AD99:F0 15   	BEQ $ADB0  	; adding base tiles phase
; roofing phase
0x00ADAB|$02:$AD9B:B1 74   	LDA ($74),Y	; map data
0x00ADAD|$02:$AD9D:29 1F   	AND #$1F   	; strip off the roof
0x00ADAF|$02:$AD9F:91 74   	STA ($74),Y	; map data
0x00ADB1|$02:$ADA1:68      	PLA        	; tile ID
0x00ADB2|$02:$ADA2:48      	PHA        	; tile ID
0x00ADB3|$02:$ADA3:0A      	ASL        	; base tiles are at most 5 bits wide, so roofing gets the high 3 bits
0x00ADB4|$02:$ADA4:0A      	ASL        
0x00ADB5|$02:$ADA5:0A      	ASL        
0x00ADB6|$02:$ADA6:0A      	ASL        
0x00ADB7|$02:$ADA7:0A      	ASL        
0x00ADB8|$02:$ADA8:11 74   	ORA ($74),Y	; map data; add the roof
0x00ADBA|$02:$ADAA:91 74   	STA ($74),Y	; map data
0x00ADBC|$02:$ADAC:68      	PLA        	; tile ID
0x00ADBD|$02:$ADAD:4C F9 AD	JMP $ADF9  	; update the map co-ordinates

; adding base tiles phase
; control flow target (from $AD99)
0x00ADC0|$02:$ADB0:AD 4F 61	LDA $614F  	; flag for whether 0b00 handler wrote tile IDs to $6153-$6155
0x00ADC3|$02:$ADB3:F0 41   	BEQ $ADF6  	; write a 1x1 tile ID and update the map co-ordinates
0x00ADC5|$02:$ADB5:68      	PLA        
; write the 2x2 block of tile IDs given by $6152-$6155 to the map buffer at ($74),Y
0x00ADC6|$02:$ADB6:AD 52 61	LDA $6152  	; first tile ID from 0b00 handler
0x00ADC9|$02:$ADB9:91 74   	STA ($74),Y	; map data
0x00ADCB|$02:$ADBB:20 17 AE	JSR $AE17  	; INC 16-bit $74-$75
0x00ADCE|$02:$ADBE:A5 74   	LDA $74    	; map data; save map buffer index on the stack
0x00ADD0|$02:$ADC0:48      	PHA        
0x00ADD1|$02:$ADC1:A5 75   	LDA $75    
0x00ADD3|$02:$ADC3:48      	PHA        
0x00ADD4|$02:$ADC4:AD 53 61	LDA $6153  	; second tile ID from 0b00 handler
0x00ADD7|$02:$ADC7:91 74   	STA ($74),Y	; map data
0x00ADD9|$02:$ADC9:20 2A AE	JSR $AE2A  	; add map width $0E to 16-bit $74-$75, i.e. $74-$75 += 1 row
0x00ADDC|$02:$ADCC:AD 55 61	LDA $6155  	; fourth tile ID from 0b00 handler
0x00ADDF|$02:$ADCF:91 74   	STA ($74),Y	; map data
0x00ADE1|$02:$ADD1:20 1E AE	JSR $AE1E  	; DEC 16-bit $74-$75
0x00ADE4|$02:$ADD4:AD 54 61	LDA $6154  	; third tile ID from 0b00 handler
0x00ADE7|$02:$ADD7:91 74   	STA ($74),Y	; map data
0x00ADE9|$02:$ADD9:68      	PLA        	; restore map buffer index from the stack
0x00ADEA|$02:$ADDA:85 75   	STA $75    
0x00ADEC|$02:$ADDC:68      	PLA        
0x00ADED|$02:$ADDD:85 74   	STA $74    	; map data
0x00ADEF|$02:$ADDF:20 17 AE	JSR $AE17  	; INC 16-bit $74-$75
0x00ADF2|$02:$ADE2:CA      	DEX        	; number of columns left to copy
0x00ADF3|$02:$ADE3:D0 AE   	BNE $AD93  	; update map buffer row
0x00ADF5|$02:$ADE5:A5 0E   	LDA $0E    	; map width
0x00ADF7|$02:$ADE7:38      	SEC        
0x00ADF8|$02:$ADE8:E5 70   	SBC $70    	; number of columns to copy
0x00ADFA|$02:$ADEA:38      	SEC        
0x00ADFB|$02:$ADEB:E5 70   	SBC $70    	; number of columns to copy
0x00ADFD|$02:$ADED:20 2C AE	JSR $AE2C  	; add A to 16-bit $74-$75
0x00AE00|$02:$ADF0:20 2A AE	JSR $AE2A  	; add map width $0E to 16-bit $74-$75, i.e. $74-$75 += 1 row
0x00AE03|$02:$ADF3:4C 0D AE	JMP $AE0D  	; DEC number of rows left to copy, keep going

; write a 1x1 tile ID and update the map co-ordinates
; control flow target (from $ADB3)
0x00AE06|$02:$ADF6:68      	PLA        
0x00AE07|$02:$ADF7:91 74   	STA ($74),Y	; map data
; update the map co-ordinates
; control flow target (from $ADAD)
0x00AE09|$02:$ADF9:20 17 AE	JSR $AE17  	; INC 16-bit $74-$75
0x00AE0C|$02:$ADFC:CA      	DEX        	; number of columns left to copy
0x00AE0D|$02:$ADFD:D0 94   	BNE $AD93  	; update map buffer row
0x00AE0F|$02:$ADFF:A5 0E   	LDA $0E    	; map width
0x00AE11|$02:$AE01:38      	SEC        
0x00AE12|$02:$AE02:E5 70   	SBC $70    	; number of columns to copy
0x00AE14|$02:$AE04:18      	CLC        
0x00AE15|$02:$AE05:65 74   	ADC $74    
0x00AE17|$02:$AE07:85 74   	STA $74    	; $74-$75 = $74-$75 + 1 row - number of columns we copied, i.e. original map co-ordinates + 1 row
0x00AE19|$02:$AE09:90 02   	BCC $AE0D  	; DEC number of rows left to copy, keep going
0x00AE1B|$02:$AE0B:E6 75   	INC $75    
; DEC number of rows left to copy, keep going
; control flow target (from $ADF3, $AE09)
0x00AE1D|$02:$AE0D:C6 71   	DEC $71    	; number of rows left to copy
0x00AE1F|$02:$AE0F:D0 03   	BNE $AE14  	; update map buffer
0x00AE21|$02:$AE11:4C 47 AC	JMP $AC47  	; process next map control code

; update map buffer
; control flow target (from $AE0F)
0x00AE24|$02:$AE14:4C 8E AD	JMP $AD8E  	; update map buffer

; INC 16-bit $74-$75
; control flow target (from $ADBB, $ADDF, $ADF9)
0x00AE27|$02:$AE17:E6 74   	INC $74    
0x00AE29|$02:$AE19:D0 02   	BNE $AE1D  
0x00AE2B|$02:$AE1B:E6 75   	INC $75    
; control flow target (from $AE19)
0x00AE2D|$02:$AE1D:60      	RTS        

; DEC 16-bit $74-$75
; control flow target (from $ADD1)
0x00AE2E|$02:$AE1E:A5 74   	LDA $74    
0x00AE30|$02:$AE20:38      	SEC        
0x00AE31|$02:$AE21:E9 01   	SBC #$01   
0x00AE33|$02:$AE23:85 74   	STA $74    
0x00AE35|$02:$AE25:B0 02   	BCS $AE29  
0x00AE37|$02:$AE27:C6 75   	DEC $75    
; control flow target (from $AE25)
0x00AE39|$02:$AE29:60      	RTS        

; add map width $0E to 16-bit $74-$75, i.e. $74-$75 += 1 row
; control flow target (from $ADC9, $ADF0)
0x00AE3A|$02:$AE2A:A5 0E   	LDA $0E    	; map width
; add A to 16-bit $74-$75
; control flow target (from $ADED)
0x00AE3C|$02:$AE2C:18      	CLC        
0x00AE3D|$02:$AE2D:65 74   	ADC $74    
0x00AE3F|$02:$AE2F:85 74   	STA $74    
0x00AE41|$02:$AE31:90 02   	BCC $AE35  
0x00AE43|$02:$AE33:E6 75   	INC $75    
; control flow target (from $AE31)
0x00AE45|$02:$AE35:60      	RTS        

; map data 0b11 handler: read 1 co-ordinate of map data and then depending on roofing phase, either write the current 1x1 or 2x2 block of tile IDs there or update its roofing
; control flow target (from $AC56)
0x00AE46|$02:$AE36:20 AE AC	JSR $ACAE  	; read 1 co-ordinate of map data into $6D-$6E, set $75-$76 to that map buffer address
0x00AE49|$02:$AE39:20 26 AF	JSR $AF26  	; depending on roofing phase, either write the current 1x1 or 2x2 block of tile IDs to ($6D) or update the roofing of the 1x1 or 2x2 block at ($6D)
0x00AE4C|$02:$AE3C:4C 47 AC	JMP $AC47  	; process next map control code

; map data 0b10 handler: read 1 co-ordinate of map data and then start drawing the current tile ID from there, moving around as dictated by map data
; control flow target (from $AC5F, $AE66)
0x00AE4F|$02:$AE3F:20 AE AC	JSR $ACAE  	; read 1 co-ordinate of map data into $6D-$6E, set $75-$76 to that map buffer address
0x00AE52|$02:$AE42:20 26 AF	JSR $AF26  	; depending on roofing phase, either write the current 1x1 or 2x2 block of tile IDs to ($6D) or update the roofing of the 1x1 or 2x2 block at ($6D)
0x00AE55|$02:$AE45:20 1D AF	JSR $AF1D  	; read 2 bits of data into draw direction $6151, updating read variables as necessary
; process next 0b10 control code
; control flow target (from $AE83, $AEB9)
0x00AE58|$02:$AE48:20 DE AC	JSR $ACDE  	; read 1 bit of map data into C, updating read variables as necessary
0x00AE5B|$02:$AE4B:B0 03   	BCS $AE50  	; read 2 bits of map data: if #$00 or #$01, rotate in that direction and draw the current tile ID; if #$02, push to "map stack" then read 1 bit of map data, rotate in that direction, and draw current tile ID; if #$03, read 1 bit of map data and if set, pop from "map stack", else loop to 0b10 handler to start drawing at a new co-ordinate
0x00AE5D|$02:$AE4D:4C B3 AE	JMP $AEB3  	; keep drawing in the current direction; update map co-ordinates based on draw direction and depending on roofing phase flag, either update the roofing of the 1x1 or 2x2 block at ($75) or write a 1x1 or 2x2 block of tile IDs to ($75)

; read 2 bits of map data: if #$00 or #$01, rotate in that direction and draw the current tile ID; if #$02, push to "map stack" then read 1 bit of map data, rotate in that direction, and draw current tile ID; if #$03, read 1 bit of map data and if set, pop from "map stack", else loop to 0b10 handler to start drawing at a new co-ordinate
; control flow target (from $AE4B)
0x00AE60|$02:$AE50:A9 02   	LDA #$02   
0x00AE62|$02:$AE52:20 CA AC	JSR $ACCA  	; read A bits of map data into $6D-$6E, updating read variables as necessary and returning $6D in A
0x00AE65|$02:$AE55:C9 00   	CMP #$00   
0x00AE67|$02:$AE57:F0 3E   	BEQ $AE97  	; turn direction clockwise, move in that direction, and draw current tile ID
0x00AE69|$02:$AE59:C9 01   	CMP #$01   
0x00AE6B|$02:$AE5B:F0 48   	BEQ $AEA5  	; turn direction counter-clockwise, move in that direction, and draw current tile ID
0x00AE6D|$02:$AE5D:C9 02   	CMP #$02   
0x00AE6F|$02:$AE5F:F0 28   	BEQ $AE89  	; push the current map co-ordinates and direction to the "map stack", updating its index, then read 1 bit of map data and if set, rotate direction counter-clockwise, else rotate direction clockwise; either way, move in that direction and draw the current tile ID
0x00AE71|$02:$AE61:20 DE AC	JSR $ACDE  	; read 1 bit of map data into C, updating read variables as necessary
; useless op; control flow is identical without this
0x00AE74|$02:$AE64:B0 02   	BCS $AE68  
0x00AE76|$02:$AE66:90 D7   	BCC $AE3F  	; map data 0b10 handler: read 1 co-ordinate of map data and then start drawing the current tile ID from there, moving around as dictated by map data
; control flow target (from $AE64)
0x00AE78|$02:$AE68:AE 56 61	LDX $6156  	; index to top of "map stack" at $616B for 0b10 handler
0x00AE7B|$02:$AE6B:F0 19   	BEQ $AE86  	; popping the bottom of the "map stack" ends the 0b10 control code; loop to process the next map control code
0x00AE7D|$02:$AE6D:CA      	DEX        
0x00AE7E|$02:$AE6E:BD 6B 61	LDA $616B,X	; "map stack" start
0x00AE81|$02:$AE71:8D 51 61	STA $6151  	; draw direction from 0b10 handler
0x00AE84|$02:$AE74:CA      	DEX        
0x00AE85|$02:$AE75:BD 6B 61	LDA $616B,X	; "map stack" start
0x00AE88|$02:$AE78:85 76   	STA $76    
0x00AE8A|$02:$AE7A:CA      	DEX        
0x00AE8B|$02:$AE7B:BD 6B 61	LDA $616B,X	; "map stack" start
0x00AE8E|$02:$AE7E:85 75   	STA $75    
0x00AE90|$02:$AE80:8E 56 61	STX $6156  	; index to top of "map stack" at $616B for 0b10 handler
0x00AE93|$02:$AE83:4C 48 AE	JMP $AE48  	; process next 0b10 control code

; popping the bottom of the "map stack" ends the 0b10 control code; loop to process the next map control code
; control flow target (from $AE6B)
0x00AE96|$02:$AE86:4C 47 AC	JMP $AC47  	; process next map control code

; push the current map co-ordinates and direction to the "map stack", updating its index, then read 1 bit of map data and if set, rotate direction counter-clockwise, else rotate direction clockwise; either way, move in that direction and draw the current tile ID
; control flow target (from $AE5F)
0x00AE99|$02:$AE89:20 DE AC	JSR $ACDE  	; read 1 bit of map data into C, updating read variables as necessary
0x00AE9C|$02:$AE8C:90 06   	BCC $AE94  	; push the current map co-ordinates and direction to the "map stack", updating its index, then rotate direction clockwise, move in that direction, and draw the current tile ID
0x00AE9E|$02:$AE8E:20 A4 AF	JSR $AFA4  	; push the current map co-ordinates and direction to the "map stack" and update its index
0x00AEA1|$02:$AE91:4C A5 AE	JMP $AEA5  	; turn direction counter-clockwise, move in that direction, and draw current tile ID

; push the current map co-ordinates and direction to the "map stack", updating its index, then rotate direction clockwise, move in that direction, and draw the current tile ID
; control flow target (from $AE8C)
0x00AEA4|$02:$AE94:20 A4 AF	JSR $AFA4  	; push the current map co-ordinates and direction to the "map stack" and update its index
; turn direction clockwise, move in that direction, and draw current tile ID
; control flow target (from $AE57)
0x00AEA7|$02:$AE97:AD 51 61	LDA $6151  	; draw direction from 0b10 handler
0x00AEAA|$02:$AE9A:18      	CLC        
0x00AEAB|$02:$AE9B:69 01   	ADC #$01   
0x00AEAD|$02:$AE9D:29 03   	AND #$03   
0x00AEAF|$02:$AE9F:8D 51 61	STA $6151  	; draw direction from 0b10 handler
0x00AEB2|$02:$AEA2:4C B3 AE	JMP $AEB3  	; keep drawing in the current direction; update map co-ordinates based on draw direction and depending on roofing phase flag, either update the roofing of the 1x1 or 2x2 block at ($75) or write a 1x1 or 2x2 block of tile IDs to ($75)

; turn direction counter-clockwise, move in that direction, and draw current tile ID
; control flow target (from $AE5B, $AE91)
0x00AEB5|$02:$AEA5:AD 51 61	LDA $6151  	; draw direction from 0b10 handler
0x00AEB8|$02:$AEA8:38      	SEC        
0x00AEB9|$02:$AEA9:E9 01   	SBC #$01   
0x00AEBB|$02:$AEAB:29 03   	AND #$03   
0x00AEBD|$02:$AEAD:8D 51 61	STA $6151  	; draw direction from 0b10 handler
0x00AEC0|$02:$AEB0:4C B3 AE	JMP $AEB3  	; keep drawing in the current direction; update map co-ordinates based on draw direction and depending on roofing phase flag, either update the roofing of the 1x1 or 2x2 block at ($75) or write a 1x1 or 2x2 block of tile IDs to ($75)

; keep drawing in the current direction; update map co-ordinates based on draw direction and depending on roofing phase flag, either update the roofing of the 1x1 or 2x2 block at ($75) or write a 1x1 or 2x2 block of tile IDs to ($75)
; control flow target (from $AE4D, $AEA2, $AEB0)
0x00AEC3|$02:$AEB3:20 BC AE	JSR $AEBC  	; update map co-ordinates based on draw direction
0x00AEC6|$02:$AEB6:20 67 AF	JSR $AF67  	; depending on roofing phase, either write a 1x1 or 2x2 block of tile IDs to ($75) or update the roofing of the 1x1 or 2x2 block at ($75)
0x00AEC9|$02:$AEB9:4C 48 AE	JMP $AE48  	; process next 0b10 control code

; update map co-ordinates based on draw direction
; control flow target (from $AEB3)
0x00AECC|$02:$AEBC:AE 51 61	LDX $6151  	; draw direction from 0b10 handler
0x00AECF|$02:$AEBF:F0 08   	BEQ $AEC9  	; subtract 1 or 2 rows from $75-$76 depending on whether we're writing 1x1 or 2x2 blocks
0x00AED1|$02:$AEC1:CA      	DEX        
0x00AED2|$02:$AEC2:F0 10   	BEQ $AED4  	; add 1 or 2 columns to $75-$76 depending on whether we're writing 1x1 or 2x2 blocks
0x00AED4|$02:$AEC4:CA      	DEX        
0x00AED5|$02:$AEC5:F0 17   	BEQ $AEDE  	; add 1 or 2 rows to $75-$76 depending on whether we're writing 1x1 or 2x2 blocks
0x00AED7|$02:$AEC7:D0 1F   	BNE $AEE8  	; subtract 1 or 2 columns from $75-$76 depending on whether we're writing 1x1 or 2x2 blocks
; subtract 1 or 2 rows from $75-$76 depending on whether we're writing 1x1 or 2x2 blocks
; control flow target (from $AEBF)
0x00AED9|$02:$AEC9:20 F2 AE	JSR $AEF2  	; subtract map width $0E from 16-bit $75-$76, i.e. $75-$76 -= 1 row
0x00AEDC|$02:$AECC:AD 4F 61	LDA $614F  	; flag for whether 0b00 handler wrote tile IDs to $6153-$6155
0x00AEDF|$02:$AECF:F0 02   	BEQ $AED3  	; done updating
0x00AEE1|$02:$AED1:D0 1F   	BNE $AEF2  	; subtract map width $0E from 16-bit $75-$76, i.e. $75-$76 -= 1 row
; done updating
; control flow target (from $AECF, $AEDA, $AEE4, $AEEE)
0x00AEE3|$02:$AED3:60      	RTS        

; add 1 or 2 columns to $75-$76 depending on whether we're writing 1x1 or 2x2 blocks
; control flow target (from $AEC2)
0x00AEE4|$02:$AED4:20 FE AE	JSR $AEFE  	; INC 16-bit $75-$76
0x00AEE7|$02:$AED7:AD 4F 61	LDA $614F  	; flag for whether 0b00 handler wrote tile IDs to $6153-$6155
0x00AEEA|$02:$AEDA:F0 F7   	BEQ $AED3  	; done updating
0x00AEEC|$02:$AEDC:D0 20   	BNE $AEFE  	; INC 16-bit $75-$76
; add 1 or 2 rows to $75-$76 depending on whether we're writing 1x1 or 2x2 blocks
; control flow target (from $AEC5)
0x00AEEE|$02:$AEDE:20 05 AF	JSR $AF05  	; add map width $0E to 16-bit $75-$76, i.e. $75-$76 += 1 row
0x00AEF1|$02:$AEE1:AD 4F 61	LDA $614F  	; flag for whether 0b00 handler wrote tile IDs to $6153-$6155
0x00AEF4|$02:$AEE4:F0 ED   	BEQ $AED3  	; done updating
0x00AEF6|$02:$AEE6:D0 1D   	BNE $AF05  	; add map width $0E to 16-bit $75-$76, i.e. $75-$76 += 1 row
; subtract 1 or 2 columns from $75-$76 depending on whether we're writing 1x1 or 2x2 blocks
; control flow target (from $AEC7)
0x00AEF8|$02:$AEE8:20 11 AF	JSR $AF11  	; DEC 16-bit $75-$76
0x00AEFB|$02:$AEEB:AD 4F 61	LDA $614F  	; flag for whether 0b00 handler wrote tile IDs to $6153-$6155
0x00AEFE|$02:$AEEE:F0 E3   	BEQ $AED3  	; done updating
0x00AF00|$02:$AEF0:D0 1F   	BNE $AF11  	; DEC 16-bit $75-$76
; subtract map width $0E from 16-bit $75-$76, i.e. $75-$76 -= 1 row
; control flow target (from $AEC9, $AED1)
0x00AF02|$02:$AEF2:A5 75   	LDA $75    
0x00AF04|$02:$AEF4:38      	SEC        
0x00AF05|$02:$AEF5:E5 0E   	SBC $0E    	; map width
0x00AF07|$02:$AEF7:85 75   	STA $75    
0x00AF09|$02:$AEF9:B0 02   	BCS $AEFD  
0x00AF0B|$02:$AEFB:C6 76   	DEC $76    
; control flow target (from $AEF9, $AF00, $AF0C, $AF18)
0x00AF0D|$02:$AEFD:60      	RTS        

; INC 16-bit $75-$76
; control flow target (from $AED4, $AEDC)
0x00AF0E|$02:$AEFE:E6 75   	INC $75    
0x00AF10|$02:$AF00:D0 FB   	BNE $AEFD  
0x00AF12|$02:$AF02:E6 76   	INC $76    
0x00AF14|$02:$AF04:60      	RTS        

; add map width $0E to 16-bit $75-$76, i.e. $75-$76 += 1 row
; control flow target (from $AEDE, $AEE6)
0x00AF15|$02:$AF05:A5 75   	LDA $75    
0x00AF17|$02:$AF07:18      	CLC        
0x00AF18|$02:$AF08:65 0E   	ADC $0E    	; map width
0x00AF1A|$02:$AF0A:85 75   	STA $75    
0x00AF1C|$02:$AF0C:90 EF   	BCC $AEFD  
0x00AF1E|$02:$AF0E:E6 76   	INC $76    
0x00AF20|$02:$AF10:60      	RTS        

; DEC 16-bit $75-$76
; control flow target (from $AEE8, $AEF0)
0x00AF21|$02:$AF11:A5 75   	LDA $75    
0x00AF23|$02:$AF13:38      	SEC        
0x00AF24|$02:$AF14:E9 01   	SBC #$01   
0x00AF26|$02:$AF16:85 75   	STA $75    
0x00AF28|$02:$AF18:B0 E3   	BCS $AEFD  
0x00AF2A|$02:$AF1A:C6 76   	DEC $76    
0x00AF2C|$02:$AF1C:60      	RTS        

; read 2 bits of data into draw direction $6151, updating read variables as necessary
; control flow target (from $AE45)
0x00AF2D|$02:$AF1D:A9 02   	LDA #$02   
0x00AF2F|$02:$AF1F:20 CA AC	JSR $ACCA  	; read A bits of map data into $6D-$6E, updating read variables as necessary and returning $6D in A
0x00AF32|$02:$AF22:8D 51 61	STA $6151  	; draw direction from 0b10 handler
0x00AF35|$02:$AF25:60      	RTS        

; depending on roofing phase, either write the current 1x1 or 2x2 block of tile IDs to ($6D) or update the roofing of the 1x1 or 2x2 block at ($6D)
; control flow target (from $AE39, $AE42)
0x00AF36|$02:$AF26:AD 52 61	LDA $6152  	; first tile ID from 0b00 handler
0x00AF39|$02:$AF29:A0 00   	LDY #$00   
0x00AF3B|$02:$AF2B:20 4A AF	JSR $AF4A  	; depending on roofing phase, either write the tile ID in A to ($6D),Y or update the roofing of ($6D),Y based on A
0x00AF3E|$02:$AF2E:AD 4F 61	LDA $614F  	; flag for whether 0b00 handler wrote tile IDs to $6153-$6155
0x00AF41|$02:$AF31:F0 16   	BEQ $AF49  
0x00AF43|$02:$AF33:C8      	INY        
0x00AF44|$02:$AF34:AD 53 61	LDA $6153  	; second tile ID from 0b00 handler
0x00AF47|$02:$AF37:20 4A AF	JSR $AF4A  	; depending on roofing phase, either write the tile ID in A to ($6D),Y or update the roofing of ($6D),Y based on A
0x00AF4A|$02:$AF3A:A4 0E   	LDY $0E    	; map width
0x00AF4C|$02:$AF3C:AD 54 61	LDA $6154  	; third tile ID from 0b00 handler
0x00AF4F|$02:$AF3F:20 4A AF	JSR $AF4A  	; depending on roofing phase, either write the tile ID in A to ($6D),Y or update the roofing of ($6D),Y based on A
0x00AF52|$02:$AF42:C8      	INY        
0x00AF53|$02:$AF43:AD 55 61	LDA $6155  	; fourth tile ID from 0b00 handler
0x00AF56|$02:$AF46:4C 4A AF	JMP $AF4A  	; depending on roofing phase, either write the tile ID in A to ($6D),Y or update the roofing of ($6D),Y based on A

; control flow target (from $AF31, $AF72)
0x00AF59|$02:$AF49:60      	RTS        

; depending on roofing phase, either write the tile ID in A to ($6D),Y or update the roofing of ($6D),Y based on A
; control flow target (from $AF2B, $AF37, $AF3F, $AF46)
0x00AF5A|$02:$AF4A:48      	PHA        	; tile ID
0x00AF5B|$02:$AF4B:AD 4E 61	LDA $614E  	; map roofing phase flag
0x00AF5E|$02:$AF4E:F0 13   	BEQ $AF63  
0x00AF60|$02:$AF50:B1 6D   	LDA ($6D),Y	; map data
0x00AF62|$02:$AF52:29 1F   	AND #$1F   	; strip off the roof
0x00AF64|$02:$AF54:91 6D   	STA ($6D),Y	; map data
0x00AF66|$02:$AF56:68      	PLA        	; tile ID
0x00AF67|$02:$AF57:48      	PHA        	; tile ID
0x00AF68|$02:$AF58:0A      	ASL        	; base tiles are at most 5 bits wide, so roofing gets the high 3 bits
0x00AF69|$02:$AF59:0A      	ASL        
0x00AF6A|$02:$AF5A:0A      	ASL        
0x00AF6B|$02:$AF5B:0A      	ASL        
0x00AF6C|$02:$AF5C:0A      	ASL        
0x00AF6D|$02:$AF5D:11 6D   	ORA ($6D),Y	; add the roof
0x00AF6F|$02:$AF5F:91 6D   	STA ($6D),Y	; map data
0x00AF71|$02:$AF61:68      	PLA        	; tile ID
0x00AF72|$02:$AF62:60      	RTS        

; control flow target (from $AF4E)
0x00AF73|$02:$AF63:68      	PLA        
0x00AF74|$02:$AF64:91 6D   	STA ($6D),Y
0x00AF76|$02:$AF66:60      	RTS        

; depending on roofing phase, either write a 1x1 or 2x2 block of tile IDs to ($75) or update the roofing of the 1x1 or 2x2 block at ($75)
; control flow target (from $AEB6)
0x00AF77|$02:$AF67:AD 52 61	LDA $6152  	; first tile ID from 0b00 handler
0x00AF7A|$02:$AF6A:A0 00   	LDY #$00   
0x00AF7C|$02:$AF6C:20 87 AF	JSR $AF87  	; depending on roofing phase, either write the tile ID in A to ($75),Y or update the roofing of ($75),Y based on A
0x00AF7F|$02:$AF6F:AD 4F 61	LDA $614F  	; flag for whether 0b00 handler wrote tile IDs to $6153-$6155
0x00AF82|$02:$AF72:F0 D5   	BEQ $AF49  
0x00AF84|$02:$AF74:C8      	INY        	; original co-ordinates + 1 column
0x00AF85|$02:$AF75:AD 53 61	LDA $6153  	; second tile ID from 0b00 handler
0x00AF88|$02:$AF78:20 87 AF	JSR $AF87  	; depending on roofing phase, either write the tile ID in A to ($75),Y or update the roofing of ($75),Y based on A
0x00AF8B|$02:$AF7B:A4 0E   	LDY $0E    	; map width; original co-ordinates + 1 row
0x00AF8D|$02:$AF7D:AD 54 61	LDA $6154  	; third tile ID from 0b00 handler
0x00AF90|$02:$AF80:20 87 AF	JSR $AF87  	; depending on roofing phase, either write the tile ID in A to ($75),Y or update the roofing of ($75),Y based on A
0x00AF93|$02:$AF83:C8      	INY        	; original co-ordinates + 1 row, + 1 column
0x00AF94|$02:$AF84:AD 55 61	LDA $6155  	; fourth tile ID from 0b00 handler
; depending on roofing phase, either write the tile ID in A to ($75),Y or update the roofing of ($75),Y based on A
; control flow target (from $AF6C, $AF78, $AF80)
0x00AF97|$02:$AF87:48      	PHA        	; tile ID
0x00AF98|$02:$AF88:AD 4E 61	LDA $614E  	; map roofing phase flag
0x00AF9B|$02:$AF8B:F0 13   	BEQ $AFA0  	; non-roofing phase: write A to the map at ($75),Y
0x00AF9D|$02:$AF8D:B1 75   	LDA ($75),Y	; map data
0x00AF9F|$02:$AF8F:29 1F   	AND #$1F   	; strip off the roof
0x00AFA1|$02:$AF91:91 75   	STA ($75),Y	; map data
0x00AFA3|$02:$AF93:68      	PLA        	; tile ID
0x00AFA4|$02:$AF94:48      	PHA        	; tile ID
0x00AFA5|$02:$AF95:0A      	ASL        	; base tiles are at most 5 bits wide, so roofing gets the high 3 bits
0x00AFA6|$02:$AF96:0A      	ASL        
0x00AFA7|$02:$AF97:0A      	ASL        
0x00AFA8|$02:$AF98:0A      	ASL        
0x00AFA9|$02:$AF99:0A      	ASL        
0x00AFAA|$02:$AF9A:11 75   	ORA ($75),Y	; add the roof
0x00AFAC|$02:$AF9C:91 75   	STA ($75),Y	; map data
0x00AFAE|$02:$AF9E:68      	PLA        	; tile ID
0x00AFAF|$02:$AF9F:60      	RTS        

; non-roofing phase: write A to the map at ($75),Y
; control flow target (from $AF8B)
0x00AFB0|$02:$AFA0:68      	PLA        
0x00AFB1|$02:$AFA1:91 75   	STA ($75),Y
0x00AFB3|$02:$AFA3:60      	RTS        

; push the current map co-ordinates and direction to the "map stack" and update its index
; control flow target (from $AE8E, $AE94)
0x00AFB4|$02:$AFA4:AE 56 61	LDX $6156  	; index to top of "map stack" at $616B for 0b10 handler
0x00AFB7|$02:$AFA7:A5 75   	LDA $75    
0x00AFB9|$02:$AFA9:9D 6B 61	STA $616B,X	; "map stack" start
0x00AFBC|$02:$AFAC:E8      	INX        
0x00AFBD|$02:$AFAD:A5 76   	LDA $76    
0x00AFBF|$02:$AFAF:9D 6B 61	STA $616B,X	; "map stack" start
0x00AFC2|$02:$AFB2:E8      	INX        
0x00AFC3|$02:$AFB3:AD 51 61	LDA $6151  	; draw direction from 0b10 handler
0x00AFC6|$02:$AFB6:9D 6B 61	STA $616B,X	; "map stack" start
0x00AFC9|$02:$AFB9:E8      	INX        
0x00AFCA|$02:$AFBA:8E 56 61	STX $6156  	; index to top of "map stack" at $616B for 0b10 handler
0x00AFCD|$02:$AFBD:60      	RTS        

0x00AFCE|$02:$AFBE:A5 0E   	LDA $0E    	; map width
0x00AFD0|$02:$AFC0:18      	CLC        
0x00AFD1|$02:$AFC1:65 0C   	ADC $0C    
0x00AFD3|$02:$AFC3:85 0C   	STA $0C    
0x00AFD5|$02:$AFC5:90 02   	BCC $AFC9  
0x00AFD7|$02:$AFC7:E6 0D   	INC $0D    
; control flow target (from $AFC5, $AFD1)
0x00AFD9|$02:$AFC9:60      	RTS        

0x00AFDA|$02:$AFCA:A5 0C   	LDA $0C    
0x00AFDC|$02:$AFCC:38      	SEC        
0x00AFDD|$02:$AFCD:E5 0E   	SBC $0E    	; map width
0x00AFDF|$02:$AFCF:85 0C   	STA $0C    
0x00AFE1|$02:$AFD1:B0 F6   	BCS $AFC9  
0x00AFE3|$02:$AFD3:C6 0D   	DEC $0D    
0x00AFE5|$02:$AFD5:60      	RTS        

0x00AFE6|$02:$AFD6:48      	PHA        
0x00AFE7|$02:$AFD7:20 E4 AF	JSR $AFE4  
0x00AFEA|$02:$AFDA:29 E0   	AND #$E0   
0x00AFEC|$02:$AFDC:91 6F   	STA ($6F),Y
0x00AFEE|$02:$AFDE:68      	PLA        
0x00AFEF|$02:$AFDF:11 6F   	ORA ($6F),Y
0x00AFF1|$02:$AFE1:91 6F   	STA ($6F),Y
0x00AFF3|$02:$AFE3:60      	RTS        

; control flow target (from $AFD7)
0x00AFF4|$02:$AFE4:8A      	TXA        
0x00AFF5|$02:$AFE5:48      	PHA        
0x00AFF6|$02:$AFE6:A5 0E   	LDA $0E    	; map width
0x00AFF8|$02:$AFE8:85 6F   	STA $6F    
0x00AFFA|$02:$AFEA:A9 00   	LDA #$00   
0x00AFFC|$02:$AFEC:85 70   	STA $70    
0x00AFFE|$02:$AFEE:98      	TYA        
0x00AFFF|$02:$AFEF:A2 6F   	LDX #$6F   
0x00B001|$02:$AFF1:20 15 B0	JSR $B015  	; given A and X, perform 16-bit multiplication: ($00,X-$01,X) = ($00,X-$01,X) * A; A unchanged
0x00B004|$02:$AFF4:A9 00   	LDA #$00   
0x00B006|$02:$AFF6:A0 78   	LDY #$78   
0x00B008|$02:$AFF8:A2 6F   	LDX #$6F   
0x00B00A|$02:$AFFA:20 0A B0	JSR $B00A  	; given A, X, and Y, ($00,X-$01,X)  = ($00,X-$01,X) + (Y * $100 + A)
0x00B00D|$02:$AFFD:68      	PLA        
0x00B00E|$02:$AFFE:A0 00   	LDY #$00   
0x00B010|$02:$B000:A2 6F   	LDX #$6F   
0x00B012|$02:$B002:20 0A B0	JSR $B00A  	; given A, X, and Y, ($00,X-$01,X)  = ($00,X-$01,X) + (Y * $100 + A)
0x00B015|$02:$B005:A0 00   	LDY #$00   
0x00B017|$02:$B007:B1 6F   	LDA ($6F),Y
0x00B019|$02:$B009:60      	RTS        

; given A, X, and Y, ($00,X-$01,X)  = ($00,X-$01,X) + (Y * $100 + A)
; control flow target (from $ACB7, $AD70, $AFFA, $B002)
0x00B01A|$02:$B00A:18      	CLC        
0x00B01B|$02:$B00B:75 00   	ADC $00,X  
0x00B01D|$02:$B00D:95 00   	STA $00,X  
0x00B01F|$02:$B00F:98      	TYA        
0x00B020|$02:$B010:75 01   	ADC $01,X  
0x00B022|$02:$B012:95 01   	STA $01,X  
0x00B024|$02:$B014:60      	RTS        

; given A and X, perform 16-bit multiplication: ($00,X-$01,X) = ($00,X-$01,X) * A; A unchanged
; control flow target (from $AFF1, $B08A, $B0E7)
0x00B025|$02:$B015:38      	SEC        
; control flow target (from $B061)
0x00B026|$02:$B016:85 7A   	STA $7A    	; remember original A for later
0x00B028|$02:$B018:A5 0C   	LDA $0C    	; save $0C-$11 on the stack
0x00B02A|$02:$B01A:48      	PHA        
0x00B02B|$02:$B01B:A5 0D   	LDA $0D    
0x00B02D|$02:$B01D:48      	PHA        
0x00B02E|$02:$B01E:A5 0E   	LDA $0E    
0x00B030|$02:$B020:48      	PHA        
0x00B031|$02:$B021:A5 0F   	LDA $0F    
0x00B033|$02:$B023:48      	PHA        
0x00B034|$02:$B024:A5 10   	LDA $10    
0x00B036|$02:$B026:48      	PHA        
0x00B037|$02:$B027:A5 11   	LDA $11    
0x00B039|$02:$B029:48      	PHA        
0x00B03A|$02:$B02A:8A      	TXA        	; save X on the stack
0x00B03B|$02:$B02B:48      	PHA        
0x00B03C|$02:$B02C:B5 01   	LDA $01,X  
0x00B03E|$02:$B02E:85 0D   	STA $0D    
0x00B040|$02:$B030:B5 00   	LDA $00,X  
0x00B042|$02:$B032:85 0C   	STA $0C    
0x00B044|$02:$B034:A9 00   	LDA #$00   
0x00B046|$02:$B036:85 0F   	STA $0F    
0x00B048|$02:$B038:A5 7A   	LDA $7A    	; original value of A
0x00B04A|$02:$B03A:85 0E   	STA $0E    
0x00B04C|$02:$B03C:90 25   	BCC $B063  
; call to code in a different bank ($0F:$C339)
0x00B04E|$02:$B03E:20 39 C3	JSR $C339  	; 16-bit multiplication: ($10-$11) = ($0C-$0D) * ($0E-$0F); consumes $0C-$0F
; restore X from stack
0x00B051|$02:$B041:68      	PLA        
0x00B052|$02:$B042:AA      	TAX        
; copy result to $00,X-$01,X
0x00B053|$02:$B043:A5 10   	LDA $10    
0x00B055|$02:$B045:95 00   	STA $00,X  
0x00B057|$02:$B047:A5 11   	LDA $11    
0x00B059|$02:$B049:95 01   	STA $01,X  
; control flow target (from $B074)
0x00B05B|$02:$B04B:68      	PLA        	; restore $0C-$11 from the stack
0x00B05C|$02:$B04C:85 11   	STA $11    
0x00B05E|$02:$B04E:68      	PLA        
0x00B05F|$02:$B04F:85 10   	STA $10    
0x00B061|$02:$B051:68      	PLA        
0x00B062|$02:$B052:85 0F   	STA $0F    
0x00B064|$02:$B054:68      	PLA        
0x00B065|$02:$B055:85 0E   	STA $0E    
0x00B067|$02:$B057:68      	PLA        
0x00B068|$02:$B058:85 0D   	STA $0D    
0x00B06A|$02:$B05A:68      	PLA        
0x00B06B|$02:$B05B:85 0C   	STA $0C    
0x00B06D|$02:$B05D:A5 7A   	LDA $7A    
0x00B06F|$02:$B05F:60      	RTS        

; given A and X, perform 16-bit division: ($00,X-$01,X) / A = quotient in ($00,X-$01,X), remainder in A
; control flow target (from $AD51, $AD61)
0x00B070|$02:$B060:18      	CLC        
0x00B071|$02:$B061:90 B3   	BCC $B016  
; control flow target (from $B03C)
; call to code in a different bank ($0F:$C360)
0x00B073|$02:$B063:20 60 C3	JSR $C360  	; 16-bit division: ($0C-$0D) / ($0E-$0F) = quotient in ($0C-$0D), remainder in ($10-$11)
; restore X from stack (from $B02A)
0x00B076|$02:$B066:68      	PLA        
0x00B077|$02:$B067:AA      	TAX        
0x00B078|$02:$B068:A5 0C   	LDA $0C    
; copy quotient to $00,X-$01,X
0x00B07A|$02:$B06A:95 00   	STA $00,X  
0x00B07C|$02:$B06C:A5 0D   	LDA $0D    
0x00B07E|$02:$B06E:95 01   	STA $01,X  
0x00B080|$02:$B070:A5 10   	LDA $10    
0x00B082|$02:$B072:85 7A   	STA $7A    
0x00B084|$02:$B074:4C 4B B0	JMP $B04B  

; read the first 3 bytes of map data, initialize the map width, map height, map buffer index bit width, tile ID bit width and $6158 (unused?); leaves $0C-$0D pointing at map data byte 3
; control flow target (from $ABA6)
0x00B087|$02:$B077:A0 00   	LDY #$00   	; initialize map data read index
0x00B089|$02:$B079:84 6E   	STY $6E    	; initialize high byte of multiplicand
0x00B08B|$02:$B07B:B1 0C   	LDA ($0C),Y	; map width
0x00B08D|$02:$B07D:85 0E   	STA $0E    	; map width
0x00B08F|$02:$B07F:85 6D   	STA $6D    	; low byte of multiplicand
0x00B091|$02:$B081:20 C4 B0	JSR $B0C4  	; INC 16-bit $0C-$0D
0x00B094|$02:$B084:B1 0C   	LDA ($0C),Y	; map height
0x00B096|$02:$B086:85 0F   	STA $0F    	; map height
0x00B098|$02:$B088:A2 6D   	LDX #$6D   
0x00B09A|$02:$B08A:20 15 B0	JSR $B015  	; given A and X, perform 16-bit multiplication: ($00,X-$01,X) = ($00,X-$01,X) * A; A unchanged
0x00B09D|$02:$B08D:A5 6D   	LDA $6D    	; low byte of map size
0x00B09F|$02:$B08F:38      	SEC        
0x00B0A0|$02:$B090:E9 01   	SBC #$01   
0x00B0A2|$02:$B092:85 6D   	STA $6D    
0x00B0A4|$02:$B094:A5 6E   	LDA $6E    	; high byte of map size
0x00B0A6|$02:$B096:E9 00   	SBC #$00   	; carry from low byte subtraction
0x00B0A8|$02:$B098:85 6E   	STA $6E    	; $6D-$6E = map size - 1
0x00B0AA|$02:$B09A:A2 10   	LDX #$10   	; $6D-$6E is 16 bits
; control flow target (from $B0A3)
0x00B0AC|$02:$B09C:06 6D   	ASL $6D    	; ASL 16-bit $6D-$6E
0x00B0AE|$02:$B09E:26 6E   	ROL $6E    
0x00B0B0|$02:$B0A0:B0 04   	BCS $B0A6  
0x00B0B2|$02:$B0A2:CA      	DEX        
0x00B0B3|$02:$B0A3:4C 9C B0	JMP $B09C  	; loop until we reach a bit that's set

; control flow target (from $B0A0)
0x00B0B6|$02:$B0A6:8E 50 61	STX $6150  	; map buffer index bit size
0x00B0B9|$02:$B0A9:20 C4 B0	JSR $B0C4  	; INC 16-bit $0C-$0D
0x00B0BC|$02:$B0AC:B1 0C   	LDA ($0C),Y	; map data byte 2
0x00B0BE|$02:$B0AE:AA      	TAX        
0x00B0BF|$02:$B0AF:29 C0   	AND #$C0   
0x00B0C1|$02:$B0B1:18      	CLC        
0x00B0C2|$02:$B0B2:2A      	ROL        
0x00B0C3|$02:$B0B3:2A      	ROL        
0x00B0C4|$02:$B0B4:2A      	ROL        
0x00B0C5|$02:$B0B5:69 02   	ADC #$02   
0x00B0C7|$02:$B0B7:8D 57 61	STA $6157  	; map tile ID bit size
0x00B0CA|$02:$B0BA:8A      	TXA        
0x00B0CB|$02:$B0BB:29 1F   	AND #$1F   
0x00B0CD|$02:$B0BD:8D 58 61	STA $6158  	; low 5 bits of map data byte 2 (unused?)
0x00B0D0|$02:$B0C0:20 C4 B0	JSR $B0C4  	; INC 16-bit $0C-$0D
0x00B0D3|$02:$B0C3:60      	RTS        

; INC 16-bit $0C-$0D
; control flow target (from $B081, $B0A9, $B0C0)
0x00B0D4|$02:$B0C4:E6 0C   	INC $0C    
0x00B0D6|$02:$B0C6:D0 02   	BNE $B0CA  
0x00B0D8|$02:$B0C8:E6 0D   	INC $0D    
; control flow target (from $B0C6)
0x00B0DA|$02:$B0CA:60      	RTS        

0x00B0DB|$02:$B0CB:A0 00   	LDY #$00   
; control flow target (from $B10B)
0x00B0DD|$02:$B0CD:84 6F   	STY $6F    
0x00B0DF|$02:$B0CF:B9 1A 05	LDA $051A,Y	; something to do with whether you've opened the chest containing the Shield of Erdrick
0x00B0E2|$02:$B0D2:19 1B 05	ORA $051B,Y
0x00B0E5|$02:$B0D5:F0 2E   	BEQ $B105  
0x00B0E7|$02:$B0D7:B9 1B 05	LDA $051B,Y
0x00B0EA|$02:$B0DA:85 6D   	STA $6D    
0x00B0EC|$02:$B0DC:A9 00   	LDA #$00   
0x00B0EE|$02:$B0DE:85 6E   	STA $6E    
0x00B0F0|$02:$B0E0:A2 6D   	LDX #$6D   
0x00B0F2|$02:$B0E2:A5 21   	LDA $21    	; map width
0x00B0F4|$02:$B0E4:18      	CLC        
0x00B0F5|$02:$B0E5:69 01   	ADC #$01   
0x00B0F7|$02:$B0E7:20 15 B0	JSR $B015  	; given A and X, perform 16-bit multiplication: ($00,X-$01,X) = ($00,X-$01,X) * A; A unchanged
0x00B0FA|$02:$B0EA:A5 6E   	LDA $6E    
0x00B0FC|$02:$B0EC:18      	CLC        
0x00B0FD|$02:$B0ED:69 78   	ADC #$78   
0x00B0FF|$02:$B0EF:85 6E   	STA $6E    
0x00B101|$02:$B0F1:A4 6F   	LDY $6F    
0x00B103|$02:$B0F3:B9 1A 05	LDA $051A,Y	; something to do with whether you've opened the chest containing the Shield of Erdrick
0x00B106|$02:$B0F6:A8      	TAY        
0x00B107|$02:$B0F7:B1 6D   	LDA ($6D),Y
0x00B109|$02:$B0F9:29 1F   	AND #$1F   
0x00B10B|$02:$B0FB:C9 14   	CMP #$14   
0x00B10D|$02:$B0FD:D0 06   	BNE $B105  
0x00B10F|$02:$B0FF:B1 6D   	LDA ($6D),Y
0x00B111|$02:$B101:29 E0   	AND #$E0   
0x00B113|$02:$B103:91 6D   	STA ($6D),Y
; control flow target (from $B0D5, $B0FD)
0x00B115|$02:$B105:A4 6F   	LDY $6F    
0x00B117|$02:$B107:C8      	INY        
0x00B118|$02:$B108:C8      	INY        
0x00B119|$02:$B109:C0 10   	CPY #$10   
0x00B11B|$02:$B10B:D0 C0   	BNE $B0CD  
0x00B11D|$02:$B10D:60      	RTS        

; indirect control flow target (via $8008)
0x00B11E|$02:$B10E:A9 F2   	LDA #$F2   
0x00B120|$02:$B110:85 19   	STA $19    
0x00B122|$02:$B112:A9 F0   	LDA #$F0   
0x00B124|$02:$B114:85 18   	STA $18    
; call to code in a different bank ($0F:$DF62)
0x00B126|$02:$B116:20 62 DF	JSR $DF62  
; call to code in a different bank ($0F:$DE00)
0x00B129|$02:$B119:20 00 DE	JSR $DE00  
0x00B12C|$02:$B11C:A5 07   	LDA $07    
0x00B12E|$02:$B11E:85 74   	STA $74    
0x00B130|$02:$B120:48      	PHA        
0x00B131|$02:$B121:29 1F   	AND #$1F   
0x00B133|$02:$B123:85 73   	STA $73    
0x00B135|$02:$B125:68      	PLA        
0x00B136|$02:$B126:29 E0   	AND #$E0   
0x00B138|$02:$B128:85 72   	STA $72    
0x00B13A|$02:$B12A:A5 08   	LDA $08    
0x00B13C|$02:$B12C:48      	PHA        
0x00B13D|$02:$B12D:29 FC   	AND #$FC   
0x00B13F|$02:$B12F:85 75   	STA $75    
0x00B141|$02:$B131:68      	PLA        
0x00B142|$02:$B132:29 03   	AND #$03   
0x00B144|$02:$B134:4A      	LSR        
0x00B145|$02:$B135:66 72   	ROR $72    
0x00B147|$02:$B137:4A      	LSR        
0x00B148|$02:$B138:66 72   	ROR $72    
0x00B14A|$02:$B13A:66 72   	ROR $72    
0x00B14C|$02:$B13C:46 72   	LSR $72    
0x00B14E|$02:$B13E:46 72   	LSR $72    
0x00B150|$02:$B140:60      	RTS        

; indirect control flow target (via $8002)
0x00B151|$02:$B141:48      	PHA        	; party leader's direction
0x00B152|$02:$B142:A9 00   	LDA #$00   
0x00B154|$02:$B144:8D F2 05	STA $05F2  	; probably whether door between you and NPC is open
0x00B157|$02:$B147:8D F3 05	STA $05F3  	; target NPC sprite ID
0x00B15A|$02:$B14A:A5 16   	LDA $16    	; current map X-pos (1)
0x00B15C|$02:$B14C:85 0C   	STA $0C    	; target NPC's X-pos
0x00B15E|$02:$B14E:A5 17   	LDA $17    	; current map Y-pos (1)
0x00B160|$02:$B150:85 0E   	STA $0E    	; target NPC's Y-pos
0x00B162|$02:$B152:68      	PLA        	; party leader's direction
0x00B163|$02:$B153:D0 0C   	BNE $B161  	; branch if not facing up
0x00B165|$02:$B155:C6 0E   	DEC $0E    	; target NPC is (0, -1) relative to party leader's position
0x00B167|$02:$B157:A9 02   	LDA #$02   	; make NPC face down
0x00B169|$02:$B159:20 0C B2	JSR $B20C  
0x00B16C|$02:$B15C:C6 13   	DEC $13    
0x00B16E|$02:$B15E:4C 8A B1	JMP $B18A  

; control flow target (from $B153)
0x00B171|$02:$B161:C9 01   	CMP #$01   
0x00B173|$02:$B163:D0 0C   	BNE $B171  	; branch if not facing right
0x00B175|$02:$B165:E6 0C   	INC $0C    	; target NPC is (+1, 0) relative to party leader's position
0x00B177|$02:$B167:A9 03   	LDA #$03   	; make NPC face left
0x00B179|$02:$B169:20 0C B2	JSR $B20C  
0x00B17C|$02:$B16C:E6 12   	INC $12    
0x00B17E|$02:$B16E:4C 8A B1	JMP $B18A  

; control flow target (from $B163)
0x00B181|$02:$B171:C9 02   	CMP #$02   
0x00B183|$02:$B173:D0 0C   	BNE $B181  	; branch if not facing down
0x00B185|$02:$B175:E6 0E   	INC $0E    	; target NPC is (0, +1) relative to party leader's position
0x00B187|$02:$B177:A9 00   	LDA #$00   	; make NPC face up
0x00B189|$02:$B179:20 0C B2	JSR $B20C  
0x00B18C|$02:$B17C:E6 13   	INC $13    
0x00B18E|$02:$B17E:4C 8A B1	JMP $B18A  

; control flow target (from $B173)
0x00B191|$02:$B181:C6 0C   	DEC $0C    	; party leader is facing left; target NPC is (-1, 0) relative to party leader's position
0x00B193|$02:$B183:A9 01   	LDA #$01   	; make NPC face right
0x00B195|$02:$B185:20 0C B2	JSR $B20C  
0x00B198|$02:$B188:C6 12   	DEC $12    
; control flow target (from $B15E, $B16E, $B17E, $B287)
0x00B19A|$02:$B18A:A0 00   	LDY #$00   
; control flow target (from $B1A8)
0x00B19C|$02:$B18C:B9 54 05	LDA $0554,Y	; NPC #$03 X-pos
0x00B19F|$02:$B18F:C5 12   	CMP $12    
0x00B1A1|$02:$B191:D0 0E   	BNE $B1A1  
0x00B1A3|$02:$B193:B9 55 05	LDA $0555,Y	; NPC #$03 Y-pos
0x00B1A6|$02:$B196:C5 13   	CMP $13    
0x00B1A8|$02:$B198:D0 07   	BNE $B1A1  
0x00B1AA|$02:$B19A:B9 59 05	LDA $0559,Y	; NPC #$03 sprite ID
0x00B1AD|$02:$B19D:C9 FF   	CMP #$FF   
0x00B1AF|$02:$B19F:D0 0B   	BNE $B1AC  
; control flow target (from $B191, $B198)
0x00B1B1|$02:$B1A1:98      	TYA        
0x00B1B2|$02:$B1A2:18      	CLC        
0x00B1B3|$02:$B1A3:69 08   	ADC #$08   
0x00B1B5|$02:$B1A5:A8      	TAY        
0x00B1B6|$02:$B1A6:C9 A0   	CMP #$A0   
0x00B1B8|$02:$B1A8:D0 E2   	BNE $B18C  
0x00B1BA|$02:$B1AA:F0 5C   	BEQ $B208  
; control flow target (from $B19F)
0x00B1BC|$02:$B1AC:B9 58 05	LDA $0558,Y	; NPC #$03 motion nybble + direction nybble
0x00B1BF|$02:$B1AF:29 F8   	AND #$F8   
0x00B1C1|$02:$B1B1:05 09   	ORA $09    
0x00B1C3|$02:$B1B3:99 58 05	STA $0558,Y	; NPC #$03 motion nybble + direction nybble
0x00B1C6|$02:$B1B6:A5 D0   	LDA $D0    	; Malroth status flag (#$FF = defeated, #$00 = alive, others = countdown to battle)
0x00B1C8|$02:$B1B8:10 15   	BPL $B1CF  
0x00B1CA|$02:$B1BA:A5 31   	LDA $31    	; current map ID
0x00B1CC|$02:$B1BC:C9 03   	CMP #$03   	; Map ID #$03: Midenhall 1F
0x00B1CE|$02:$B1BE:D0 0F   	BNE $B1CF  
; call to code in a different bank ($0F:$FEDA)
0x00B1D0|$02:$B1C0:20 DA FE	JSR $FEDA  	; parse byte following JSR for bank and pointer index, set $D6-$D7 to $8000,X-$8001,X in selected bank

; code -> data
; indirect data load target
0x00B1D3|$02:$B1C3:49	; $02:$8012; -> $02:$B351: looks like more NPC data?

; data -> code
0x00B1D4|$02:$B1C4:A5 D6   	LDA $D6    
0x00B1D6|$02:$B1C6:85 0C   	STA $0C    
0x00B1D8|$02:$B1C8:A5 D7   	LDA $D7    
0x00B1DA|$02:$B1CA:85 0D   	STA $0D    
0x00B1DC|$02:$B1CC:4C E4 B1	JMP $B1E4  

; control flow target (from $B1B8, $B1BE)
0x00B1DF|$02:$B1CF:A5 31   	LDA $31    	; current map ID
0x00B1E1|$02:$B1D1:0A      	ASL        
0x00B1E2|$02:$B1D2:AA      	TAX        
0x00B1E3|$02:$B1D3:AD 50 00	LDA $0050  	; um, okay?
0x00B1E6|$02:$B1D6:BD 39 A5	LDA $A539,X	; pointers to per-map NPC setup (X-pos, Y-pos, ???, sprite ID, dialogue [not string] ID)
0x00B1E9|$02:$B1D9:85 0C   	STA $0C    
0x00B1EB|$02:$B1DB:BD 3A A5	LDA $A53A,X
0x00B1EE|$02:$B1DE:85 0D   	STA $0D    
0x00B1F0|$02:$B1E0:05 0C   	ORA $0C    
0x00B1F2|$02:$B1E2:F0 24   	BEQ $B208  
; control flow target (from $B1CC)
0x00B1F4|$02:$B1E4:98      	TYA        	; set Y = 5 * Y / 8 + 3
0x00B1F5|$02:$B1E5:4A      	LSR        
0x00B1F6|$02:$B1E6:85 0E   	STA $0E    	; Y / 2
0x00B1F8|$02:$B1E8:4A      	LSR        
0x00B1F9|$02:$B1E9:4A      	LSR        	; Y / 8
0x00B1FA|$02:$B1EA:18      	CLC        
0x00B1FB|$02:$B1EB:65 0E   	ADC $0E    	; Y / 2 + Y / 8
0x00B1FD|$02:$B1ED:18      	CLC        	; pointless since Y >> 1 + Y >> 3 can't make a carry
0x00B1FE|$02:$B1EE:69 03   	ADC #$03   
0x00B200|$02:$B1F0:A8      	TAY        
0x00B201|$02:$B1F1:B1 0C   	LDA ($0C),Y
0x00B203|$02:$B1F3:8D F3 05	STA $05F3  	; target NPC sprite ID
0x00B206|$02:$B1F6:C8      	INY        
0x00B207|$02:$B1F7:B1 0C   	LDA ($0C),Y
; control flow target (from $B20A, $B22E)
0x00B209|$02:$B1F9:48      	PHA        	; dialogue ID
; call to code in a different bank ($0F:$C1DC)
0x00B20A|$02:$B1FA:20 DC C1	JSR $C1DC  	; set $6007 = #$00, set $00 = #$01, wait for interrupt, set $00 = #$FF
; call to code in a different bank ($0F:$CF5E)
0x00B20D|$02:$B1FD:20 5E CF	JSR $CF5E  
0x00B210|$02:$B200:68      	PLA        	; dialogue ID
0x00B211|$02:$B201:85 0C   	STA $0C    
0x00B213|$02:$B203:A5 94   	LDA $94    	; return bank for various function calls, doubles as index of selected option for multiple-choice menus
; call to code in a different bank ($0F:$C3D5)
0x00B215|$02:$B205:4C D5 C3	JMP $C3D5  	; save A to $05F6, X to $43, and load bank specified by A

; control flow target (from $B1AA, $B1E2)
0x00B218|$02:$B208:A9 00   	LDA #$00   
0x00B21A|$02:$B20A:F0 ED   	BEQ $B1F9  
; control flow target (from $B159, $B169, $B179, $B185)
0x00B21C|$02:$B20C:85 09   	STA $09    
0x00B21E|$02:$B20E:CD 48 05	CMP $0548  	; NPC #$01 ? + direction nybble
0x00B221|$02:$B211:D0 1E   	BNE $B231  
0x00B223|$02:$B213:AD 3A 05	LDA $053A  
0x00B226|$02:$B216:CD 42 05	CMP $0542  	; NPC #$00 ?
0x00B229|$02:$B219:D0 08   	BNE $B223  
0x00B22B|$02:$B21B:AD 3B 05	LDA $053B  
0x00B22E|$02:$B21E:CD 43 05	CMP $0543  	; NPC #$00 ?
0x00B231|$02:$B221:F0 0E   	BEQ $B231  
; control flow target (from $B219)
0x00B233|$02:$B223:AD 49 05	LDA $0549  	; NPC #$01 sprite ID
0x00B236|$02:$B226:C9 01   	CMP #$01   
0x00B238|$02:$B228:D0 07   	BNE $B231  
0x00B23A|$02:$B22A:68      	PLA        
0x00B23B|$02:$B22B:68      	PLA        
0x00B23C|$02:$B22C:A9 01   	LDA #$01   
; control flow target (from $B258, $B25E)
0x00B23E|$02:$B22E:4C F9 B1	JMP $B1F9  

; control flow target (from $B211, $B221, $B228)
0x00B241|$02:$B231:A5 09   	LDA $09    
0x00B243|$02:$B233:CD 50 05	CMP $0550  	; NPC #$02 ? + direction nybble
0x00B246|$02:$B236:D0 28   	BNE $B260  
0x00B248|$02:$B238:A8      	TAY        
0x00B249|$02:$B239:AD 4A 05	LDA $054A  	; NPC #$01 scripted motion low byte
0x00B24C|$02:$B23C:D9 8A B2	CMP $B28A,Y
0x00B24F|$02:$B23F:D0 1F   	BNE $B260  
0x00B251|$02:$B241:AD 4B 05	LDA $054B  	; NPC #$01 scripted motion high byte
0x00B254|$02:$B244:D9 8E B2	CMP $B28E,Y
0x00B257|$02:$B247:D0 17   	BNE $B260  
0x00B259|$02:$B249:AD 51 05	LDA $0551  	; NPC #$02 sprite ID
0x00B25C|$02:$B24C:C9 09   	CMP #$09   
0x00B25E|$02:$B24E:F0 0A   	BEQ $B25A  
0x00B260|$02:$B250:C9 02   	CMP #$02   
0x00B262|$02:$B252:D0 0C   	BNE $B260  
0x00B264|$02:$B254:68      	PLA        
0x00B265|$02:$B255:68      	PLA        
0x00B266|$02:$B256:A9 04   	LDA #$04   
0x00B268|$02:$B258:D0 D4   	BNE $B22E  
; control flow target (from $B24E)
0x00B26A|$02:$B25A:68      	PLA        
0x00B26B|$02:$B25B:68      	PLA        
0x00B26C|$02:$B25C:A9 02   	LDA #$02   
0x00B26E|$02:$B25E:D0 CE   	BNE $B22E  
; control flow target (from $B236, $B23F, $B247, $B252)
0x00B270|$02:$B260:A5 0C   	LDA $0C    
0x00B272|$02:$B262:48      	PHA        
0x00B273|$02:$B263:A5 0E   	LDA $0E    
0x00B275|$02:$B265:48      	PHA        
; call to code in a different bank ($0F:$DF83)
0x00B276|$02:$B266:20 83 DF	JSR $DF83  
0x00B279|$02:$B269:68      	PLA        
0x00B27A|$02:$B26A:85 13   	STA $13    
0x00B27C|$02:$B26C:68      	PLA        
0x00B27D|$02:$B26D:85 12   	STA $12    
0x00B27F|$02:$B26F:A5 1F   	LDA $1F    	; some kind of map type (#$00: World Map, #$01: other non-dungeon maps, #$02: maps #$2B - #$43 inclusive, #$03: maps >= #$44, #$FF => game menu)
0x00B281|$02:$B271:C9 01   	CMP #$01   
0x00B283|$02:$B273:D0 10   	BNE $B285  
0x00B285|$02:$B275:A5 0C   	LDA $0C    
0x00B287|$02:$B277:C9 0D   	CMP #$0D   
0x00B289|$02:$B279:F0 04   	BEQ $B27F  
0x00B28B|$02:$B27B:C9 1A   	CMP #$1A   
0x00B28D|$02:$B27D:D0 06   	BNE $B285  
; control flow target (from $B279)
0x00B28F|$02:$B27F:A9 FF   	LDA #$FF   
0x00B291|$02:$B281:8D F2 05	STA $05F2  	; probably whether door between you and NPC is open
0x00B294|$02:$B284:60      	RTS        

; control flow target (from $B273, $B27D)
0x00B295|$02:$B285:68      	PLA        
0x00B296|$02:$B286:68      	PLA        
0x00B297|$02:$B287:4C 8A B1	JMP $B18A  


; code -> data
; indexed data load target (from $B23C)
0x00B29A|$02:$B28A:80
0x00B29B|$02:$B28B:70
0x00B29C|$02:$B28C:80
0x00B29D|$02:$B28D:90
; indexed data load target (from $B244)
0x00B29E|$02:$B28E:7F
0x00B29F|$02:$B28F:6F
0x00B2A0|$02:$B290:5F
0x00B2A1|$02:$B291:6F

; data -> code
; looks like this determines NPC's post-Malroth text
; indirect control flow target (via $8006)
0x00B2A2|$02:$B292:A9 02   	LDA #$02   
0x00B2A4|$02:$B294:8D 94 00	STA $0094  	; return bank for various function calls, doubles as index of selected option for multiple-choice menus
0x00B2A7|$02:$B297:A5 0C   	LDA $0C    	; save $0C-$0D on the stack
0x00B2A9|$02:$B299:48      	PHA        
0x00B2AA|$02:$B29A:A5 0D   	LDA $0D    
0x00B2AC|$02:$B29C:48      	PHA        
; call to code in a different bank ($0F:$EB76)
0x00B2AD|$02:$B29D:20 76 EB	JSR $EB76  	; open menu specified by next byte

; code -> data
; indirect data load target
0x00B2B0|$02:$B2A0:04	; Menu ID #$04: Dialogue window

; data -> code
0x00B2B1|$02:$B2A1:68      	PLA        	; restore $0C-$0D from the stack
0x00B2B2|$02:$B2A2:85 0D   	STA $0D    
0x00B2B4|$02:$B2A4:68      	PLA        
0x00B2B5|$02:$B2A5:85 0C   	STA $0C    
0x00B2B7|$02:$B2A7:A5 0C   	LDA $0C    	; dialogue ID; just in case it wasn't already in A, clearly :p
0x00B2B9|$02:$B2A9:C9 45   	CMP #$45   
0x00B2BB|$02:$B2AB:F0 08   	BEQ $B2B5  	; #$45, #$46, and #$A6 (Moonbrooke ghosts) all use the same string
0x00B2BD|$02:$B2AD:C9 46   	CMP #$46   
0x00B2BF|$02:$B2AF:F0 04   	BEQ $B2B5  
0x00B2C1|$02:$B2B1:C9 A6   	CMP #$A6   
0x00B2C3|$02:$B2B3:D0 04   	BNE $B2B9  
; control flow target (from $B2AB, $B2AF)
0x00B2C5|$02:$B2B5:A9 AC   	LDA #$AC   	; String ID #$01AC: ‘See a light--that is the pure light of Rubiss rising from the sea[.’][wait][line]‘We thank thee for all that thou hast done[.’][end-FC]
0x00B2C7|$02:$B2B7:D0 74   	BNE $B32D  
; control flow target (from $B2B3)
0x00B2C9|$02:$B2B9:C9 52   	CMP #$52   
0x00B2CB|$02:$B2BB:D0 04   	BNE $B2C1  
0x00B2CD|$02:$B2BD:A9 AE   	LDA #$AE   	; String ID #$01AE: ‘I apologize for deceiving thee. I am the King of this castle. Ha! Ha!’[end-FC]
0x00B2CF|$02:$B2BF:D0 6C   	BNE $B32D  
; control flow target (from $B2BB)
0x00B2D1|$02:$B2C1:C9 B0   	CMP #$B0   
0x00B2D3|$02:$B2C3:D0 04   	BNE $B2C9  
0x00B2D5|$02:$B2C5:A9 AF   	LDA #$AF   	; String ID #$01AF: ‘Thou art strong and noble, [name]. Well done[.’][end-FC]
0x00B2D7|$02:$B2C7:D0 64   	BNE $B32D  
; control flow target (from $B2C3)
0x00B2D9|$02:$B2C9:C9 A1   	CMP #$A1   
0x00B2DB|$02:$B2CB:D0 0D   	BNE $B2DA  
0x00B2DD|$02:$B2CD:A9 01   	LDA #$01   	; Cannock
; call to code in a different bank ($0F:$FC50)
0x00B2DF|$02:$B2CF:20 50 FC	JSR $FC50  	; print name of hero given by low 2 bits of A to $6119, terminated by #$FA
; call to code in a different bank ($0F:$FA2E)
0x00B2E2|$02:$B2D2:20 2E FA	JSR $FA2E  	; display string ID specified by next byte + #$0100

; code -> data
; indirect data load target
0x00B2E5|$02:$B2D5:B0	; String ID #$01B0: ‘Once again the line of Erdrick has proven true[.’][wait][line]‘[name], my heir, thou hast gained a great victory, and I am proud of thee[.’][end-FC]

; data -> code
0x00B2E6|$02:$B2D6:A9 BB   	LDA #$BB   	; String ID #$01BB: ‘To thy new duties must thou go now, [name][.’][end-FC]
0x00B2E8|$02:$B2D8:D0 53   	BNE $B32D  
; control flow target (from $B2CB)
0x00B2EA|$02:$B2DA:C9 A2   	CMP #$A2   
0x00B2EC|$02:$B2DC:D0 04   	BNE $B2E2  
0x00B2EE|$02:$B2DE:A9 B1   	LDA #$B1   	; String ID #$01B1: ‘Brother, thou hast done well. I shall never doubt thee again[.’][end-FC]
0x00B2F0|$02:$B2E0:D0 4B   	BNE $B32D  
; control flow target (from $B2DC)
0x00B2F2|$02:$B2E2:C9 BC   	CMP #$BC   
0x00B2F4|$02:$B2E4:D0 0A   	BNE $B2F0  
0x00B2F6|$02:$B2E6:A9 00   	LDA #$00   
; call to code in a different bank ($0F:$FC50)
0x00B2F8|$02:$B2E8:20 50 FC	JSR $FC50  	; print name of hero given by low 2 bits of A to $6119, terminated by #$FA
; call to code in a different bank ($0F:$FA32)
0x00B2FB|$02:$B2EB:20 32 FA	JSR $FA32  	; display string ID specified by next byte + #$0200

; code -> data
; indirect data load target
0x00B2FE|$02:$B2EE:F2	; String ID #$02F2: ‘Thou hast done well, [name][.’][wait][line]‘Let bygones be bygones and we shall be friends[.’][end-FC]

; data -> code
0x00B2FF|$02:$B2EF:60      	RTS        

; control flow target (from $B2E4)
0x00B300|$02:$B2F0:C9 01   	CMP #$01   
0x00B302|$02:$B2F2:D0 07   	BNE $B2FB  
0x00B304|$02:$B2F4:A9 B3   	LDA #$B3   	; String ID #$01B3: [no voice][name] : [line]‘Thou shalt go[.’][end-FC]
0x00B306|$02:$B2F6:48      	PHA        
0x00B307|$02:$B2F7:A9 01   	LDA #$01   	; Cannock
0x00B309|$02:$B2F9:D0 35   	BNE $B330  
; control flow target (from $B2F2)
0x00B30B|$02:$B2FB:C9 02   	CMP #$02   
0x00B30D|$02:$B2FD:D0 07   	BNE $B306  
0x00B30F|$02:$B2FF:A9 B4   	LDA #$B4   	; String ID #$01B4: [no voice][name] : [line]‘What? I seek not the crown[.’][end-FC]
0x00B311|$02:$B301:48      	PHA        
0x00B312|$02:$B302:A9 02   	LDA #$02   	; Moonbrooke
0x00B314|$02:$B304:D0 2A   	BNE $B330  
; control flow target (from $B2FD)
0x00B316|$02:$B306:AC F3 05	LDY $05F3  	; target NPC sprite ID
0x00B319|$02:$B309:B9 37 B3	LDA $B337,Y
0x00B31C|$02:$B30C:C9 AA   	CMP #$AA   
0x00B31E|$02:$B30E:D0 0A   	BNE $B31A  
0x00B320|$02:$B310:A6 31   	LDX $31    	; current map ID
0x00B322|$02:$B312:E0 03   	CPX #$03   	; Map ID #$03: Midenhall 1F
0x00B324|$02:$B314:D0 17   	BNE $B32D  	; everybody in Midenhall says the same thing (except for the hidden person blocking your path to the basement)
0x00B326|$02:$B316:A9 B2   	LDA #$B2   	; String ID #$01B2: ‘Now thou art King of Midenhall and must take thy throne!’[end-FC]
0x00B328|$02:$B318:D0 13   	BNE $B32D  
; control flow target (from $B30E)
0x00B32A|$02:$B31A:C9 FF   	CMP #$FF   
0x00B32C|$02:$B31C:D0 0F   	BNE $B32D  
0x00B32E|$02:$B31E:A5 0D   	LDA $0D    
0x00B330|$02:$B320:A0 05   	LDY #$05   
; control flow target (from $B328)
0x00B332|$02:$B322:D9 45 B3	CMP $B345,Y
0x00B335|$02:$B325:F0 03   	BEQ $B32A  
0x00B337|$02:$B327:88      	DEY        
0x00B338|$02:$B328:10 F8   	BPL $B322  
; control flow target (from $B325)
0x00B33A|$02:$B32A:B9 4B B3	LDA $B34B,Y
; control flow target (from $B2B7, $B2BF, $B2C7, $B2D8, $B2E0, $B314, $B318, $B31C)
0x00B33D|$02:$B32D:48      	PHA        
0x00B33E|$02:$B32E:A9 00   	LDA #$00   
; control flow target (from $B2F9, $B304)
; call to code in a different bank ($0F:$FC50)
0x00B340|$02:$B330:20 50 FC	JSR $FC50  	; print name of hero given by low 2 bits of A to $6119, terminated by #$FA
0x00B343|$02:$B333:68      	PLA        
; call to code in a different bank ($0F:$FA4E)
0x00B344|$02:$B334:4C 4E FA	JMP $FA4E  	; display string ID specified by A + #$0100


; code -> data
; indexed data load target (from $B309)
0x00B347|$02:$B337:00	; Sprite ID $#00: Midenhall; (probably impossible)
0x00B348|$02:$B338:B3	; Sprite ID $#01: Cannock; String ID #$01B3: [no voice][name] : [line]‘Thou shalt go[.’][end-FC]
0x00B349|$02:$B339:B4	; Sprite ID $#02: Moonbrooke; String ID #$01B4: [no voice][name] : [line]‘What? I seek not the crown[.’][end-FC]
0x00B34A|$02:$B33A:49	; Sprite ID $#03: King; String ID #$0149: [end-FC]
0x00B34B|$02:$B33B:00	; Sprite ID $#04: Flame; (probably impossible)
0x00B34C|$02:$B33C:FF	; Sprite ID $#05: Priest; String ID #$01FF: [end-FC]
0x00B34D|$02:$B33D:A4	; Sprite ID $#06: Shopkeeper; String ID #$01A4: ‘Thanks to thee, peace has returned[.’][end-FC]
0x00B34E|$02:$B33E:A7	; Sprite ID $#07: Woman; String ID #$01A7: ‘Oh, it is like a dream--to think that someone had the power to destroy Hargon[.’][end-FC]
0x00B34F|$02:$B33F:A6	; Sprite ID $#08: Brute; String ID #$01A6: ‘Thou hast done exceedingly well[.’][end-FC]
0x00B350|$02:$B340:AB	; Sprite ID $#09: Dog; String ID #$01AB: ‘Bow-wow-wow[.’][end-FC]
0x00B351|$02:$B341:AA	; Sprite ID $#0A: Guard; String ID #$01AA: ‘Thou art Great Warriors!’[end-FC]
0x00B352|$02:$B342:A4	; Sprite ID $#0B: Wizard; String ID #$01A4: ‘Thanks to thee, peace has returned[.’][end-FC]
0x00B353|$02:$B343:A5	; Sprite ID $#0C: Young Man; String ID #$01A5: ‘Hargon doesn't exist anymore, does he?’[end-FC]
0x00B354|$02:$B344:00	; Sprite ID $#0D: Ship; (probably impossible)
; indexed data load target (from $B322)
0x00B355|$02:$B345:03
0x00B356|$02:$B346:07
0x00B357|$02:$B347:0B
0x00B358|$02:$B348:0F
0x00B359|$02:$B349:13
0x00B35A|$02:$B34A:2B
; indexed data load target (from $B32A)
0x00B35B|$02:$B34B:00	; (probably impossible)
0x00B35C|$02:$B34C:00	; (probably impossible)
0x00B35D|$02:$B34D:AD	; String ID #$01AD: ‘Rrrrrr..[.’][end-FC]
0x00B35E|$02:$B34E:A9	; String ID #$01A9: ‘Hurrah! Hurrah!’[end-FC]
0x00B35F|$02:$B34F:A8	; String ID #$01A8: ‘The people will be free again, for the evil magic has dissipated like smoke in the wind[.’][end-FC]
0x00B360|$02:$B350:00	; (probably impossible)
; looks like more NPC data?
; from $02:$B1C3, $0F:$E4EF, $0F:$E4FB via $8012
; indirect data load target (via $8012)
0x00B361|$02:$B351:0F 02 02 03 00
0x00B366|$02:$B356:0F 06 03 FF 01
0x00B36B|$02:$B35B:0F 06 01 FF 02
0x00B370|$02:$B360:0F 02 02 FF 00
0x00B375|$02:$B365:0E 03 02 0A 03
0x00B37A|$02:$B36A:10 03 02 0A 03
0x00B37F|$02:$B36F:0D 04 01 0A 03
0x00B384|$02:$B374:11 04 03 0A 03
0x00B389|$02:$B379:0D 06 01 0A 03
0x00B38E|$02:$B37E:0D 08 01 0A 03
0x00B393|$02:$B383:11 06 03 0A 03
0x00B398|$02:$B388:11 08 03 0A 03
0x00B39D|$02:$B38D:15 05 00 03 00
; indirect data load target
0x00B3A2|$02:$B392:FF

; data -> code
; read the next string byte; preserves X and Y
; from $BE03 via $8004
; indirect control flow target (via $8004)
0x00B3A3|$02:$B393:8A      	TXA        
0x00B3A4|$02:$B394:48      	PHA        
0x00B3A5|$02:$B395:98      	TYA        
0x00B3A6|$02:$B396:48      	PHA        
0x00B3A7|$02:$B397:20 A1 B3	JSR $B3A1  	; read the next string byte
0x00B3AA|$02:$B39A:68      	PLA        
0x00B3AB|$02:$B39B:A8      	TAY        
0x00B3AC|$02:$B39C:68      	PLA        
0x00B3AD|$02:$B39D:AA      	TAX        
0x00B3AE|$02:$B39E:A5 6D   	LDA $6D    
0x00B3B0|$02:$B3A0:60      	RTS        

; read the next string byte
; control flow target (from $B397)
0x00B3B1|$02:$B3A1:AD D2 60	LDA $60D2  	; read index within current dictionary entry
0x00B3B4|$02:$B3A4:D0 05   	BNE $B3AB  	; if we're starting to read a new dictionary entry, reset the secondary text table offset
0x00B3B6|$02:$B3A6:A9 00   	LDA #$00   
0x00B3B8|$02:$B3A8:8D D3 60	STA $60D3  	; secondary text table offset for C0 - C3 tables
; control flow target (from $B3A4, $B3C9, $B3E6)
; call to code in a different bank ($0F:$FE34)
0x00B3BB|$02:$B3AB:20 34 FE	JSR $FE34  	; swap in the right text bank, set A to the current dictionary index, swap in bank #$02
0x00B3BE|$02:$B3AE:20 F6 B3	JSR $B3F6  	; given a dictionary index in A, set $6F-$70 to the address of the corresponding dictionary entry
0x00B3C1|$02:$B3B1:AD 8B 60	LDA $608B  	; text engine: $608B = dictionary index
0x00B3C4|$02:$B3B4:20 2D B4	JSR $B42D  	; given dictionary index in A, set A to length of that dictionary entry
0x00B3C7|$02:$B3B7:CD D2 60	CMP $60D2  	; read index within current dictionary entry
0x00B3CA|$02:$B3BA:F0 02   	BEQ $B3BE  	; if read index == dictionary entry length, we finished with this entry last time, so reset temp vars, update read vars, and start reading the next entry
0x00B3CC|$02:$B3BC:B0 0E   	BCS $B3CC  	; if read index < dictionary entry length, process current dictionary byte
; control flow target (from $B3BA)
0x00B3CE|$02:$B3BE:A9 00   	LDA #$00   
0x00B3D0|$02:$B3C0:8D D2 60	STA $60D2  	; read index within current dictionary entry
0x00B3D3|$02:$B3C3:8D D3 60	STA $60D3  	; secondary text table offset for C0 - C3 tables
; call to code in a different bank ($0F:$FDF7)
0x00B3D6|$02:$B3C6:20 F7 FD	JSR $FDF7  	; after reading a text token, update the read address in $55-$56 and bit index in $60D6
0x00B3D9|$02:$B3C9:4C AB B3	JMP $B3AB  	; loop to read the next byte of dictionary entry

; process current dictionary byte (update secondary text table offset if switch token, increment dictionary read index and return current byte otherwise)
; control flow target (from $B3BC)
0x00B3DC|$02:$B3CC:AC D2 60	LDY $60D2  	; read index within current dictionary entry
0x00B3DF|$02:$B3CF:B1 6F   	LDA ($6F),Y	; read the current byte of the current dictionary entry
0x00B3E1|$02:$B3D1:C9 C0   	CMP #$C0   	; BUG: dictionary values #$C0 - #$CF are treated as table switches, but the offset data only covers #$C0 - #$C4 (and the game only uses #$C0 - #$C3)
0x00B3E3|$02:$B3D3:90 14   	BCC $B3E9  	; if not a switch token, increment read index and return current byte of dictionary entry
0x00B3E5|$02:$B3D5:C9 D0   	CMP #$D0   
0x00B3E7|$02:$B3D7:B0 10   	BCS $B3E9  	; if not a switch token, increment read index and return current byte of dictionary entry
0x00B3E9|$02:$B3D9:38      	SEC        
0x00B3EA|$02:$B3DA:E9 C0   	SBC #$C0   	; normalize value to index; could have saved 3 bytes by doing "LDA $B331,Y" instead
0x00B3EC|$02:$B3DC:A8      	TAY        
0x00B3ED|$02:$B3DD:B9 F1 B3	LDA $B3F1,Y	; secondary text table offsets for C0 - C3 tables
0x00B3F0|$02:$B3E0:8D D3 60	STA $60D3  	; secondary text table offset for C0 - C3 tables
; call to code in a different bank ($0F:$FDF7)
0x00B3F3|$02:$B3E3:20 F7 FD	JSR $FDF7  	; after reading a text token, update the read address in $55-$56 and bit index in $60D6
0x00B3F6|$02:$B3E6:4C AB B3	JMP $B3AB  	; loop to read the next byte of dictionary entry

; if not a switch token, increment read index and return current byte of dictionary entry
; control flow target (from $B3D3, $B3D7)
0x00B3F9|$02:$B3E9:EE D2 60	INC $60D2  	; read index within current dictionary entry
0x00B3FC|$02:$B3EC:B1 6F   	LDA ($6F),Y	; re-read the current byte of the current dictionary entry (... but it's already in A)
0x00B3FE|$02:$B3EE:85 6D   	STA $6D    	; stash in $6D since caller needs to pop stuff off the stack
0x00B400|$02:$B3F0:60      	RTS        


; code -> data
; secondary text table offsets for C0 - C3 tables
; indexed data load target (from $B3DD)
0x00B401|$02:$B3F1:20
0x00B402|$02:$B3F2:40
0x00B403|$02:$B3F3:60
0x00B404|$02:$B3F4:80
0x00B405|$02:$B3F5:A0

; data -> code
; given a dictionary index in A, set $6F-$70 to the address of the corresponding dictionary entry
; control flow target (from $B3AE)
0x00B406|$02:$B3F6:A8      	TAY        	; Y = A = dictionary index
0x00B407|$02:$B3F7:AD D2 60	LDA $60D2  	; read index within current dictionary entry
0x00B40A|$02:$B3FA:D0 24   	BNE $B420  	; copy dictionary entry pointer to $6F-$70; if read index > 0, we've already done set up, so skip ahead
0x00B40C|$02:$B3FC:AD 2B B4	LDA $B42B  	; pointer to dictionary entries
0x00B40F|$02:$B3FF:8D D4 60	STA $60D4  	; low byte of pointer to current dictionary entry
0x00B412|$02:$B402:AD 2C B4	LDA $B42C  
0x00B415|$02:$B405:8D D5 60	STA $60D5  	; high byte of pointer to current dictionary entry
; dictionary entry pointer += length of the Y-th dictionary entry
; control flow target (from $B41D)
0x00B418|$02:$B408:88      	DEY        
0x00B419|$02:$B409:C0 FF   	CPY #$FF   	; Y == #$FF => Y was #$00 => we're done updating the dictionary entry pointer
0x00B41B|$02:$B40B:F0 13   	BEQ $B420  	; copy dictionary entry pointer to $6F-$70
0x00B41D|$02:$B40D:98      	TYA        
0x00B41E|$02:$B40E:20 2D B4	JSR $B42D  	; given dictionary index in A, set A to length of that dictionary entry
0x00B421|$02:$B411:18      	CLC        
0x00B422|$02:$B412:6D D4 60	ADC $60D4  	; low byte of pointer to current dictionary entry
0x00B425|$02:$B415:8D D4 60	STA $60D4  	; low byte of pointer to current dictionary entry
0x00B428|$02:$B418:90 03   	BCC $B41D  
0x00B42A|$02:$B41A:EE D5 60	INC $60D5  	; high byte of pointer to current dictionary entry
; control flow target (from $B418)
0x00B42D|$02:$B41D:4C 08 B4	JMP $B408  	; dictionary entry pointer += length of the Y-th dictionary entry

; copy dictionary entry pointer to $6F-$70
; control flow target (from $B3FA, $B40B)
0x00B430|$02:$B420:AD D4 60	LDA $60D4  	; low byte of pointer to current dictionary entry
0x00B433|$02:$B423:85 6F   	STA $6F    
0x00B435|$02:$B425:AD D5 60	LDA $60D5  	; high byte of pointer to current dictionary entry
0x00B438|$02:$B428:85 70   	STA $70    
0x00B43A|$02:$B42A:60      	RTS        


; code -> data
; pointer to dictionary entries
; data load target (from $B3FC)
0x00B43B|$02:$B42B:8B
; data load target (from $B402)
0x00B43C|$02:$B42C:   B4	; $02:$B48B; dictionary entries

; data -> code
; given dictionary index in A, set A to length of that dictionary entry
; control flow target (from $B3B4, $B40E)
0x00B43D|$02:$B42D:4A      	LSR        	; 2 lengths per byte; C will say which length we want
0x00B43E|$02:$B42E:AA      	TAX        
0x00B43F|$02:$B42F:BD 3B B4	LDA $B43B,X	; dictionary entry lengths, 1 nybble each
0x00B442|$02:$B432:B0 04   	BCS $B438  	; if C set (dictionary index was odd), we want the low byte, otherwise the high byte
0x00B444|$02:$B434:4A      	LSR        
0x00B445|$02:$B435:4A      	LSR        
0x00B446|$02:$B436:4A      	LSR        
0x00B447|$02:$B437:4A      	LSR        
; control flow target (from $B432)
0x00B448|$02:$B438:29 0F   	AND #$0F   
0x00B44A|$02:$B43A:60      	RTS        


; code -> data
; dictionary entry lengths, 1 nybble each
; indexed data load target (from $B42F)
0x00B44B|$02:$B43B:12	; length of "[end-FC]", length of ".[end-FC]"
0x00B44C|$02:$B43C:52	; length of "?’[FD][FD][end-FC]", length of "[.’][end-FC]"
0x00B44D|$02:$B43D:11	; length of "[end-FF]", length of "y"
0x00B44E|$02:$B43E:11	; length of "c", length of "o"
0x00B44F|$02:$B43F:11	; length of "d", length of "e"
0x00B450|$02:$B440:11	; length of "f", length of "g"
0x00B451|$02:$B441:11	; length of "h", length of "i"
0x00B452|$02:$B442:11	; length of "j", length of " "
0x00B453|$02:$B443:11	; length of "l", length of "m"
0x00B454|$02:$B444:11	; length of "n", length of "[line]"
0x00B455|$02:$B445:11	; length of "[.’]", length of "‘"
0x00B456|$02:$B446:11	; length of "r", length of "s"
0x00B457|$02:$B447:11	; length of "t", length of "u"
0x00B458|$02:$B448:11	; length of "a", length of "w"
0x00B459|$02:$B449:11	; length of [switch to C0 table], length of [switch to C1 table]
0x00B45A|$02:$B44A:11	; length of [switch to C2 table], length of [switch to C3 table]
0x00B45B|$02:$B44B:11	; length of "A", length of "B"
0x00B45C|$02:$B44C:21	; length of "Ca", length of "D"
0x00B45D|$02:$B44D:11	; length of "E", length of "F"
0x00B45E|$02:$B44E:11	; length of "G", length of "H"
0x00B45F|$02:$B44F:11	; length of "I", length of "J"
0x00B460|$02:$B450:41	; length of "King", length of "L"
0x00B461|$02:$B451:A1	; length of "Moonbrooke", length of "N"
0x00B462|$02:$B452:11	; length of "O", length of "[item]"
0x00B463|$02:$B453:46	; length of "The ", length of "Rhone "
0x00B464|$02:$B454:11	; length of "S", length of ";"
0x00B465|$02:$B455:11	; length of "U", length of "”"
0x00B466|$02:$B456:F1	; length of "Water Flying Cl", length of "C"
0x00B467|$02:$B457:11	; length of "Y", length of "Z"
0x00B468|$02:$B458:18	; length of "x", length of "Village "
0x00B469|$02:$B459:11	; length of "z", length of "[F9]"
0x00B46A|$02:$B45A:11	; length of "‟", length of "K"
0x00B46B|$02:$B45B:11	; length of "v", length of "q"
0x00B46C|$02:$B45C:31	; length of "’[wait][line]", length of "R"
0x00B46D|$02:$B45D:12	; length of ".", length of "[FD][FD]"
0x00B46E|$02:$B45E:11	; length of "P", length of "b"
0x00B46F|$02:$B45F:11	; length of "T", length of "!"
0x00B470|$02:$B460:11	; length of "[sun]", length of "[star]"
0x00B471|$02:$B461:11	; length of "[moon]", length of "W"
0x00B472|$02:$B462:11	; length of "k", length of "p"
0x00B473|$02:$B463:11	; length of "?", length of ","
0x00B474|$02:$B464:12	; length of "[cardinal #]", length of "[..][..]"
0x00B475|$02:$B465:11	; length of ":", length of "'"
0x00B476|$02:$B466:11	; length of "-", length of "’"
0x00B477|$02:$B467:11	; length of "[spell]", length of "[monster(s)]"
0x00B478|$02:$B468:11	; length of "[no voice]", length of "[wait]"
0x00B479|$02:$B469:11	; length of "M", length of "[name]"
0x00B47A|$02:$B46A:11	; length of "[number]", length of "[FD]"
0x00B47B|$02:$B46B:94	; length of "Thou hast", length of "hest"
0x00B47C|$02:$B46C:94	; length of "Midenhall", length of "hou "
0x00B47D|$02:$B46D:44	; length of " of ", length of " is "
0x00B47E|$02:$B46E:95	; length of " thou has", length of " and "
0x00B47F|$02:$B46F:55	; length of "to th", length of " thee"
0x00B480|$02:$B470:33	; length of "ast", length of " do"
0x00B481|$02:$B471:47	; length of "hat ", length of " shall "
0x00B482|$02:$B472:57	; length of " was ", length of "hou has"
0x00B483|$02:$B473:55	; length of "d the", length of " has "
0x00B484|$02:$B474:33	; length of "gon", length of ".[wait][line]"
0x00B485|$02:$B475:68	; length of " have ", length of "come to "
0x00B486|$02:$B476:35	; length of "ing", length of " hast"
0x00B487|$02:$B477:84	; length of "ost thou", length of "this"
0x00B488|$02:$B478:86	; length of " of the ", length of "Hargon"
0x00B489|$02:$B479:75	; length of "in the ", length of "thing"
0x00B48A|$02:$B47A:35	; length of "he ", length of " with"
0x00B48B|$02:$B47B:86	; length of "reasure ", length of "‘Hast "
0x00B48C|$02:$B47C:74	; length of "Erdrick", length of "come"
0x00B48D|$02:$B47D:78	; length of "ere is ", length of "Welcome "
0x00B48E|$02:$B47E:56	; length of "rince", length of " great"
0x00B48F|$02:$B47F:37	; length of "arr", length of " for th"
0x00B490|$02:$B480:E3	; length of "piece[(s)] of gold", length of "[.’][wait][line]"
0x00B491|$02:$B481:44	; length of "But ", length of "here"
0x00B492|$02:$B482:43	; length of "can ", length of "ove"
0x00B493|$02:$B483:33	; length of "hee", length of "not"
0x00B494|$02:$B484:33	; length of "for", length of "one"
0x00B495|$02:$B485:44	; length of " any", length of " to "
0x00B496|$02:$B486:AF	; length of "descendant", length of "Roge Fastfinger"
0x00B497|$02:$B487:33	; length of "all", length of "thy"
0x00B498|$02:$B488:2A	; length of "‘W", length of "thank thee"
0x00B499|$02:$B489:34	; length of " it", length of " tha"
0x00B49A|$02:$B48A:64	; length of " thou ", length of " the"
; dictionary entries

; indirect data load target (via $B42B)
0x00B49B|$02:$B48B:FC	; "[end-FC]"
0x00B49C|$02:$B48C:6B FC	; ".[end-FC]"
0x00B49E|$02:$B48E:6E 66 FD FD FC	; "?’[FD][FD][end-FC]"
0x00B4A3|$02:$B493:68 FC	; "[.’][end-FC]"
0x00B4A5|$02:$B495:FF	; "[end-FF]"
0x00B4A6|$02:$B496:22	; "y"
0x00B4A7|$02:$B497:0C	; "c"
0x00B4A8|$02:$B498:18	; "o"
0x00B4A9|$02:$B499:0D	; "d"
0x00B4AA|$02:$B49A:0E	; "e"
0x00B4AB|$02:$B49B:0F	; "f"
0x00B4AC|$02:$B49C:10	; "g"
0x00B4AD|$02:$B49D:11	; "h"
0x00B4AE|$02:$B49E:12	; "i"
0x00B4AF|$02:$B49F:13	; "j"
0x00B4B0|$02:$B4A0:5F	; " "
0x00B4B1|$02:$B4A1:15	; "l"
0x00B4B2|$02:$B4A2:16	; "m"
0x00B4B3|$02:$B4A3:17	; "n"
0x00B4B4|$02:$B4A4:FE	; "[line]"
0x00B4B5|$02:$B4A5:68	; "[.’]"
0x00B4B6|$02:$B4A6:65	; "‘"
0x00B4B7|$02:$B4A7:1B	; "r"
0x00B4B8|$02:$B4A8:1C	; "s"
0x00B4B9|$02:$B4A9:1D	; "t"
0x00B4BA|$02:$B4AA:1E	; "u"
0x00B4BB|$02:$B4AB:0A	; "a"
0x00B4BC|$02:$B4AC:20	; "w"
0x00B4BD|$02:$B4AD:C0	; [switch to C0 table]
0x00B4BE|$02:$B4AE:C1	; [switch to C1 table]
0x00B4BF|$02:$B4AF:C2	; [switch to C2 table]
0x00B4C0|$02:$B4B0:C3	; [switch to C3 table]

; C0 table
0x00B4C1|$02:$B4B1:24	; "A"
0x00B4C2|$02:$B4B2:25	; "B"
0x00B4C3|$02:$B4B3:26 0A	; "Ca"
0x00B4C5|$02:$B4B5:27	; "D"
0x00B4C6|$02:$B4B6:28	; "E"
0x00B4C7|$02:$B4B7:29	; "F"
0x00B4C8|$02:$B4B8:2A	; "G"
0x00B4C9|$02:$B4B9:2B	; "H"
0x00B4CA|$02:$B4BA:2C	; "I"
0x00B4CB|$02:$B4BB:2D	; "J"
0x00B4CC|$02:$B4BC:2E 12 17 10	; "King"
0x00B4D0|$02:$B4C0:2F	; "L"
0x00B4D1|$02:$B4C1:30 18 18 17 0B 1B 18 18 14 0E	; "Moonbrooke"
0x00B4DB|$02:$B4CB:31	; "N"
0x00B4DC|$02:$B4CC:32	; "O"
0x00B4DD|$02:$B4CD:F7	; "[item]"
0x00B4DE|$02:$B4CE:37 11 0E 5F	; "The "
0x00B4E2|$02:$B4D2:35 11 18 17 0E 5F	; "Rhone "
0x00B4E8|$02:$B4D8:36	; "S"
0x00B4E9|$02:$B4D9:70	; ";"
0x00B4EA|$02:$B4DA:38	; "U"
0x00B4EB|$02:$B4DB:62	; "”"
0x00B4EC|$02:$B4DC:3A 0A 1D 0E 1B 5F 29 15 22 12 17 10 5F 26 15	; "Water Flying Cl"
0x00B4FB|$02:$B4EB:26	; "C"
0x00B4FC|$02:$B4EC:3C	; "Y"
0x00B4FD|$02:$B4ED:3D	; "Z"
0x00B4FE|$02:$B4EE:21	; "x"
0x00B4FF|$02:$B4EF:39 12 15 15 0A 10 0E 5F	; "Village "
0x00B507|$02:$B4F7:23	; "z"
0x00B508|$02:$B4F8:F9	; "[item-F9]"
0x00B509|$02:$B4F9:64	; "‟"
0x00B50A|$02:$B4FA:2E	; "K"

; C1 table
0x00B50B|$02:$B4FB:1F	; "v"
0x00B50C|$02:$B4FC:1A	; "q"
0x00B50D|$02:$B4FD:66 FB FE	; "’[wait][line]"
0x00B510|$02:$B500:35	; "R"
0x00B511|$02:$B501:6B	; "."
0x00B512|$02:$B502:FD FD	; "[FD][FD]"
0x00B514|$02:$B504:33	; "P"
0x00B515|$02:$B505:0B	; "b"
0x00B516|$02:$B506:37	; "T"
0x00B517|$02:$B507:6F	; "!"
0x00B518|$02:$B508:5A	; "[sun]"
0x00B519|$02:$B509:5B	; "[star]"
0x00B51A|$02:$B50A:5C	; "[moon]"
0x00B51B|$02:$B50B:3A	; "W"
0x00B51C|$02:$B50C:14	; "k"
0x00B51D|$02:$B50D:19	; "p"
0x00B51E|$02:$B50E:6E	; "?"
0x00B51F|$02:$B50F:69	; ","
0x00B520|$02:$B510:F4	; "[cardinal #]"
0x00B521|$02:$B511:75 75	; "[..][..]"
0x00B523|$02:$B513:74	; ":"
0x00B524|$02:$B514:67	; "'"
0x00B525|$02:$B515:6A	; "-"
0x00B526|$02:$B516:66	; "’"
0x00B527|$02:$B517:F6	; "[spell]"
0x00B528|$02:$B518:F3	; "[monster(s)]"
0x00B529|$02:$B519:60	; "[no voice]"
0x00B52A|$02:$B51A:FB	; "[wait]"
0x00B52B|$02:$B51B:30	; "M"
0x00B52C|$02:$B51C:F8	; "[name]"
0x00B52D|$02:$B51D:F5	; "[number]"
0x00B52E|$02:$B51E:FD	; "[FD]"

; C2 table
0x00B52F|$02:$B51F:37 11 18 1E 5F 11 0A 1C 1D	; "Thou hast"
0x00B538|$02:$B528:11 0E 1C 1D	; "hest"
0x00B53C|$02:$B52C:30 12 0D 0E 17 11 0A 15 15	; "Midenhall"
0x00B545|$02:$B535:11 18 1E 5F	; "hou "
0x00B549|$02:$B539:5F 18 0F 5F	; " of "
0x00B54D|$02:$B53D:5F 12 1C 5F	; " is "
0x00B551|$02:$B541:5F 1D 11 18 1E 5F 11 0A 1C	; " thou has"
0x00B55A|$02:$B54A:5F 0A 17 0D 5F	; " and "
0x00B55F|$02:$B54F:1D 18 5F 1D 11	; "to th"
0x00B564|$02:$B554:5F 1D 11 0E 0E	; " thee"
0x00B569|$02:$B559:0A 1C 1D	; "ast"
0x00B56C|$02:$B55C:5F 0D 18	; " do"
0x00B56F|$02:$B55F:11 0A 1D 5F	; "hat "
0x00B573|$02:$B563:5F 1C 11 0A 15 15 5F	; " shall "
0x00B57A|$02:$B56A:5F 20 0A 1C 5F	; " was "
0x00B57F|$02:$B56F:11 18 1E 5F 11 0A 1C	; "hou has"
0x00B586|$02:$B576:0D 5F 1D 11 0E	; "d the"
0x00B58B|$02:$B57B:5F 11 0A 1C 5F	; " has "
0x00B590|$02:$B580:10 18 17	; "gon"
0x00B593|$02:$B583:6B FB FE	; ".[wait][line]"
0x00B596|$02:$B586:5F 11 0A 1F 0E 5F	; " have "
0x00B59C|$02:$B58C:0C 18 16 0E 5F 1D 18 5F	; "come to "
0x00B5A4|$02:$B594:12 17 10	; "ing"
0x00B5A7|$02:$B597:5F 11 0A 1C 1D	; " hast"
0x00B5AC|$02:$B59C:18 1C 1D 5F 1D 11 18 1E	; "ost thou"
0x00B5B4|$02:$B5A4:1D 11 12 1C	; "this"
0x00B5B8|$02:$B5A8:5F 18 0F 5F 1D 11 0E 5F	; " of the "
0x00B5C0|$02:$B5B0:2B 0A 1B 10 18 17	; "Hargon"
0x00B5C6|$02:$B5B6:12 17 5F 1D 11 0E 5F	; "in the "
0x00B5CD|$02:$B5BD:1D 11 12 17 10	; "thing"
0x00B5D2|$02:$B5C2:11 0E 5F	; "he "
0x00B5D5|$02:$B5C5:5F 20 12 1D 11	; " with"

; C3 table
0x00B5DA|$02:$B5CA:1B 0E 0A 1C 1E 1B 0E 5F	; "reasure "
0x00B5E2|$02:$B5D2:65 2B 0A 1C 1D 5F	; "‘Hast "
0x00B5E8|$02:$B5D8:28 1B 0D 1B 12 0C 14	; "Erdrick"
0x00B5EF|$02:$B5DF:0C 18 16 0E	; "come"
0x00B5F3|$02:$B5E3:0E 1B 0E 5F 12 1C 5F	; "ere is "
0x00B5FA|$02:$B5EA:3A 0E 15 0C 18 16 0E 5F	; "Welcome "
0x00B602|$02:$B5F2:1B 12 17 0C 0E	; "rince"
0x00B607|$02:$B5F7:5F 10 1B 0E 0A 1D	; " great"
0x00B60D|$02:$B5FD:0A 1B 1B	; "arr"
0x00B610|$02:$B600:5F 0F 18 1B 5F 1D 11	; " for th"
0x00B617|$02:$B607:19 12 0E 0C 0E F2 5F 18 0F 5F 10 18 15 0D	; "piece[(s)] of gold"
0x00B625|$02:$B615:68 FB FE	; "[.’][wait][line]"
0x00B628|$02:$B618:25 1E 1D 5F	; "But "
0x00B62C|$02:$B61C:11 0E 1B 0E	; "here"
0x00B630|$02:$B620:0C 0A 17 5F	; "can "
0x00B634|$02:$B624:18 1F 0E	; "ove"
0x00B637|$02:$B627:11 0E 0E	; "hee"
0x00B63A|$02:$B62A:17 18 1D	; "not"
0x00B63D|$02:$B62D:0F 18 1B	; "for"
0x00B640|$02:$B630:18 17 0E	; "one"
0x00B643|$02:$B633:5F 0A 17 22	; " any"
0x00B647|$02:$B637:5F 1D 18 5F	; " to "
0x00B64B|$02:$B63B:0D 0E 1C 0C 0E 17 0D 0A 17 1D	; "descendant"
0x00B655|$02:$B645:35 18 10 0E 5F 29 0A 1C 1D 0F 12 17 10 0E 1B	; "Roge Fastfinger"
0x00B664|$02:$B654:0A 15 15	; "all"
0x00B667|$02:$B657:1D 11 22	; "thy"
0x00B66A|$02:$B65A:65 3A	; "‘W"
0x00B66C|$02:$B65C:1D 11 0A 17 14 5F 1D 11 0E 0E	; "thank thee"
0x00B676|$02:$B666:5F 12 1D	; " it"
0x00B679|$02:$B669:5F 1D 11 0A	; " tha"
0x00B67D|$02:$B66D:5F 1D 11 18 1E 5F	; " thou "
0x00B683|$02:$B673:5F 1D 11 0E	; " the"

; data -> code
; CLC if end of word, SEC otherwise
; from $0F:$FB4D, $0F:$FB7D, $0F:$FBD9 via $800A
; indirect control flow target (via $800A)
0x00B687|$02:$B677:C9 FA   	CMP #$FA   
0x00B689|$02:$B679:B0 0A   	BCS $B685  	; CLC to indicate end of word; any control code >= #$FA counts as a word ender
0x00B68B|$02:$B67B:C9 60   	CMP #$60   	; [no voice]
0x00B68D|$02:$B67D:F0 06   	BEQ $B685  	; CLC to indicate end of word
0x00B68F|$02:$B67F:C9 5F   	CMP #$5F   	; [space]
0x00B691|$02:$B681:F0 02   	BEQ $B685  	; CLC to indicate end of word
0x00B693|$02:$B683:38      	SEC        	; SEC to indicate not end of word
0x00B694|$02:$B684:60      	RTS        

; CLC to indicate end of word
; control flow target (from $B679, $B67D, $B681)
0x00B695|$02:$B685:18      	CLC        
0x00B696|$02:$B686:60      	RTS        

; if menu current column < #$16, CLC and RTS, otherwise do stuff
; from $0F:$FB61, $0F:$FD40 via $800E
; indirect control flow target (via $800E)
0x00B697|$02:$B687:AD 9E 60	LDA $609E  	; menu current column
0x00B69A|$02:$B68A:C9 16   	CMP #$16   	; width of dialogue box
0x00B69C|$02:$B68C:B0 0A   	BCS $B698  
0x00B69E|$02:$B68E:60      	RTS        

; handler for control code #$FD
; from $0F:$FBAB via $8000
; indirect control flow target (via $8000)
0x00B69F|$02:$B68F:20 BA B6	JSR $B6BA  	; set menu current column to $7C
0x00B6A2|$02:$B692:4C 9D B6	JMP $B69D  

; from $0F:$FB9E, $0F:$FBA6, $0F:$FBB0 via $800C
; indirect control flow target (via $800C)
0x00B6A5|$02:$B695:20 BA B6	JSR $B6BA  	; set menu current column to $7C
; control flow target (from $B68C)
0x00B6A8|$02:$B698:CD C8 60	CMP $60C8  	; speech sound effect / auto-indent flag
0x00B6AB|$02:$B69B:F0 1C   	BEQ $B6B9  
; control flow target (from $B692)
0x00B6AD|$02:$B69D:A6 7D   	LDX $7D    
0x00B6AF|$02:$B69F:E8      	INX        
0x00B6B0|$02:$B6A0:E0 08   	CPX #$08   	; height of dialogue box
0x00B6B2|$02:$B6A2:B0 1C   	BCS $B6C0  
; control flow target (from $B6C2)
0x00B6B4|$02:$B6A4:AD C7 60	LDA $60C7  
0x00B6B7|$02:$B6A7:4A      	LSR        
0x00B6B8|$02:$B6A8:4A      	LSR        
0x00B6B9|$02:$B6A9:49 03   	EOR #$03   
0x00B6BB|$02:$B6AB:18      	CLC        
0x00B6BC|$02:$B6AC:65 7D   	ADC $7D    
0x00B6BE|$02:$B6AE:85 7D   	STA $7D    
; control flow target (from $B6E5)
0x00B6C0|$02:$B6B0:AD C8 60	LDA $60C8  	; speech sound effect / auto-indent flag
0x00B6C3|$02:$B6B3:8D 9E 60	STA $609E  	; menu current column
0x00B6C6|$02:$B6B6:85 7C   	STA $7C    
0x00B6C8|$02:$B6B8:18      	CLC        
; control flow target (from $B69B)
0x00B6C9|$02:$B6B9:60      	RTS        

; set menu current column to $7C
; control flow target (from $B68F, $B695)
0x00B6CA|$02:$B6BA:A5 7C   	LDA $7C    
0x00B6CC|$02:$B6BC:8D 9E 60	STA $609E  	; menu current column
0x00B6CF|$02:$B6BF:60      	RTS        

; control flow target (from $B6A2)
0x00B6D0|$02:$B6C0:A5 8E   	LDA $8E    	; flag for in battle or not (#$FF)?
0x00B6D2|$02:$B6C2:30 E0   	BMI $B6A4  
0x00B6D4|$02:$B6C4:20 E7 B6	JSR $B6E7  
0x00B6D7|$02:$B6C7:AD C7 60	LDA $60C7  
0x00B6DA|$02:$B6CA:C9 04   	CMP #$04   
0x00B6DC|$02:$B6CC:D0 03   	BNE $B6D1  
0x00B6DE|$02:$B6CE:20 E7 B6	JSR $B6E7  
; control flow target (from $B6CC)
0x00B6E1|$02:$B6D1:A9 13   	LDA #$13   
0x00B6E3|$02:$B6D3:8D 84 60	STA $6084  
0x00B6E6|$02:$B6D6:A9 00   	LDA #$00   
0x00B6E8|$02:$B6D8:8D 85 60	STA $6085  
; control flow target (from $B6E3)
; call to code in a different bank ($0F:$FCFF)
0x00B6EB|$02:$B6DB:20 FF FC	JSR $FCFF  
0x00B6EE|$02:$B6DE:AD 84 60	LDA $6084  
0x00B6F1|$02:$B6E1:C9 1B   	CMP #$1B   
0x00B6F3|$02:$B6E3:90 F6   	BCC $B6DB  
0x00B6F5|$02:$B6E5:B0 C9   	BCS $B6B0  
; control flow target (from $B6C4, $B6CE)
0x00B6F7|$02:$B6E7:A2 00   	LDX #$00   
; control flow target (from $B703)
0x00B6F9|$02:$B6E9:BD 0E 07	LDA $070E,X
0x00B6FC|$02:$B6EC:29 7F   	AND #$7F   
0x00B6FE|$02:$B6EE:C9 76   	CMP #$76   
0x00B700|$02:$B6F0:B0 0E   	BCS $B700  
0x00B702|$02:$B6F2:48      	PHA        
0x00B703|$02:$B6F3:BD F8 06	LDA $06F8,X	; start of main dialogue window
0x00B706|$02:$B6F6:29 7F   	AND #$7F   
0x00B708|$02:$B6F8:C9 76   	CMP #$76   
0x00B70A|$02:$B6FA:68      	PLA        
0x00B70B|$02:$B6FB:B0 03   	BCS $B700  
0x00B70D|$02:$B6FD:9D F8 06	STA $06F8,X	; start of main dialogue window
; control flow target (from $B6F0, $B6FB)
0x00B710|$02:$B700:E8      	INX        
0x00B711|$02:$B701:E0 9A   	CPX #$9A   
0x00B713|$02:$B703:D0 E4   	BNE $B6E9  
0x00B715|$02:$B705:A9 5F   	LDA #$5F   
; control flow target (from $B70D)
0x00B717|$02:$B707:9D F8 06	STA $06F8,X	; start of main dialogue window
0x00B71A|$02:$B70A:E8      	INX        
0x00B71B|$02:$B70B:E0 B0   	CPX #$B0   
0x00B71D|$02:$B70D:D0 F8   	BNE $B707  
0x00B71F|$02:$B70F:60      	RTS        

; from $0F:$FBA2 via $8010
; indirect control flow target (via $8010)
0x00B720|$02:$B710:A9 0F   	LDA #$0F   
0x00B722|$02:$B712:85 03   	STA $03    	; game clock?
; control flow target (from $B721)
0x00B724|$02:$B714:20 30 B7	JSR $B730  
; call to code in a different bank ($0F:$C1DC)
0x00B727|$02:$B717:20 DC C1	JSR $C1DC  	; set $6007 = #$00, set $00 = #$01, wait for interrupt, set $00 = #$FF
; call to code in a different bank ($0F:$C476)
0x00B72A|$02:$B71A:20 76 C4	JSR $C476  	; read joypad 1 data into $2F
0x00B72D|$02:$B71D:A5 2F   	LDA $2F    	; joypad 1 data
0x00B72F|$02:$B71F:29 F3   	AND #$F3   	; ignore Start/Select
0x00B731|$02:$B721:F0 F1   	BEQ $B714  
0x00B733|$02:$B723:20 3A B7	JSR $B73A  
0x00B736|$02:$B726:A9 85   	LDA #$85   	; Music ID #$85: single beep SFX
; call to code in a different bank ($0F:$C561)
0x00B738|$02:$B728:20 61 C5	JSR $C561  	; play PCM specified by A (>= #$80 = sound effect [SFX], < #$80 = background music [BGM])
0x00B73B|$02:$B72B:A9 02   	LDA #$02   
0x00B73D|$02:$B72D:85 7C   	STA $7C    
0x00B73F|$02:$B72F:60      	RTS        

; control flow target (from $B714)
0x00B740|$02:$B730:A2 73   	LDX #$73   
0x00B742|$02:$B732:A5 03   	LDA $03    	; game clock?
0x00B744|$02:$B734:29 1F   	AND #$1F   
0x00B746|$02:$B736:C9 10   	CMP #$10   
0x00B748|$02:$B738:B0 02   	BCS $B73C  
; control flow target (from $B723)
0x00B74A|$02:$B73A:A2 5F   	LDX #$5F   
; control flow target (from $B738)
0x00B74C|$02:$B73C:86 09   	STX $09    
0x00B74E|$02:$B73E:A9 10   	LDA #$10   
0x00B750|$02:$B740:8D 8B 60	STA $608B  
0x00B753|$02:$B743:A5 7D   	LDA $7D    
0x00B755|$02:$B745:18      	CLC        
0x00B756|$02:$B746:69 13   	ADC #$13   
0x00B758|$02:$B748:8D 8C 60	STA $608C  
; call to code in a different bank ($0F:$FE97)
0x00B75B|$02:$B74B:20 97 FE	JSR $FE97  	; read byte following JSR, parse it for bank and pointer index, execute ($8000,X) in selected bank, swap back in original bank

; code -> data
; indirect data load target
0x00B75E|$02:$B74E:C1	; $06:$8002

; data -> code
; call to code in a different bank ($0F:$C1FA)
0x00B75F|$02:$B74F:4C FA C1	JMP $C1FA  	; wait for $02 to not be #$C0, write PPU address in $07-$08 and data in $09 to PPU write buffer at $0300,$02, $01 += 1, $02 += 3, and set $0183 to #$00


; code -> data
; -> $05:$8000: main script strings, part 1
; main script pointer table, targets in bank 5
; external indexed data load target (from $0F:$FA9A)
0x00B762|$02:$B752:00
; external indexed data load target (from $0F:$FA9F)
0x00B763|$02:$B753:   80	; $05:$8000; main script strings, part 1
0x00B764|$02:$B754:B3 80	; $05:$80B3; main script strings #$0010 - #$001F
0x00B766|$02:$B756:77 81	; $05:$8177; main script strings #$0020 - #$002F
0x00B768|$02:$B758:9B 82	; $05:$829B; main script strings #$0030 - #$003F
0x00B76A|$02:$B75A:D6 83	; $05:$83D6; main script strings #$0040 - #$004F
0x00B76C|$02:$B75C:20 85	; $05:$8520; main script strings #$0050 - #$005F
0x00B76E|$02:$B75E:28 86	; $05:$8628; main script strings #$0060 - #$006F
0x00B770|$02:$B760:0D 88	; $05:$880D; main script strings #$0070 - #$007F
0x00B772|$02:$B762:EF 8C	; $05:$8CEF; main script strings #$0080 - #$008F
0x00B774|$02:$B764:F0 8E	; $05:$8EF0; main script strings #$0090 - #$009F
0x00B776|$02:$B766:FA 8E	; $05:$8EFA; main script strings #$00A0 - #$00AF
0x00B778|$02:$B768:04 8F	; $05:$8F04; main script strings #$00B0 - #$00BF
0x00B77A|$02:$B76A:0E 8F	; $05:$8F0E; main script strings #$00C0 - #$00CF
0x00B77C|$02:$B76C:18 8F	; $05:$8F18; main script strings #$00D0 - #$00DF
0x00B77E|$02:$B76E:22 8F	; $05:$8F22; main script strings #$00E0 - #$00EF
0x00B780|$02:$B770:2C 8F	; $05:$8F2C; main script strings #$00F0 - #$00FF
0x00B782|$02:$B772:36 8F	; $05:$8F36; main script strings #$0100 - #$010F
0x00B784|$02:$B774:3F 90	; $05:$903F; main script strings #$0110 - #$011F
0x00B786|$02:$B776:43 91	; $05:$9143; main script strings #$0120 - #$012F
0x00B788|$02:$B778:9C 92	; $05:$929C; main script strings #$0130 - #$013F
0x00B78A|$02:$B77A:F9 93	; $05:$93F9; main script strings #$0140 - #$014F
0x00B78C|$02:$B77C:1E 95	; $05:$951E; main script strings #$0150 - #$015F
0x00B78E|$02:$B77E:AB 96	; $05:$96AB; main script strings #$0160 - #$016F
0x00B790|$02:$B780:EF 97	; $05:$97EF; main script strings #$0170 - #$017F
0x00B792|$02:$B782:41 99	; $05:$9941; main script strings #$0180 - #$018F
0x00B794|$02:$B784:DC 9A	; $05:$9ADC; main script strings #$0190 - #$019F
0x00B796|$02:$B786:0B 9D	; $05:$9D0B; main script strings #$01A0 - #$01AF
0x00B798|$02:$B788:94 9E	; $05:$9E94; main script strings #$01B0 - #$01BF
0x00B79A|$02:$B78A:51 A0	; $05:$A051; main script strings #$01C0 - #$01CF
0x00B79C|$02:$B78C:5B A0	; $05:$A05B; main script strings #$01D0 - #$01DF
0x00B79E|$02:$B78E:65 A0	; $05:$A065; main script strings #$01E0 - #$01EF
0x00B7A0|$02:$B790:6F A0	; $05:$A06F; main script strings #$01F0 - #$01FF
0x00B7A2|$02:$B792:79 A0	; $05:$A079; main script strings #$0200 - #$020F
0x00B7A4|$02:$B794:AF A2	; $05:$A2AF; main script strings #$0210 - #$021F
0x00B7A6|$02:$B796:7E A6	; $05:$A67E; main script strings #$0220 - #$022F
0x00B7A8|$02:$B798:78 A9	; $05:$A978; main script strings #$0230 - #$023F
0x00B7AA|$02:$B79A:4A AC	; $05:$AC4A; main script strings #$0240 - #$024F
0x00B7AC|$02:$B79C:17 AF	; $05:$AF17; main script strings #$0250 - #$025F
0x00B7AE|$02:$B79E:23 B1	; $05:$B123; main script strings #$0260 - #$026F
0x00B7B0|$02:$B7A0:EF B2	; $05:$B2EF; main script strings #$0270 - #$027F
0x00B7B2|$02:$B7A2:3E B5	; $05:$B53E; main script strings #$0280 - #$028F
0x00B7B4|$02:$B7A4:61 B7	; $05:$B761; main script strings #$0290 - #$029F
0x00B7B6|$02:$B7A6:4F B9	; $05:$B94F; main script strings #$02A0 - #$02AF
0x00B7B8|$02:$B7A8:C3 BB	; $05:$BBC3; main script strings #$02B0 - #$02BF
0x00B7BA|$02:$B7AA:DA BD	; $05:$BDDA; main script strings #$02C0 - #$02CF
0x00B7BC|$02:$B7AC:AE BF	; $05:$BFAE; main script strings #$02D0 - #$02DF
; main script pointer table, targets in bank 2
0x00B7BE|$02:$B7AE:7E B9	; $02:$B97E; main script strings #$02E0 - #$02EF
0x00B7C0|$02:$B7B0:97 BB	; $02:$BB97; main script strings #$02F0 - #$02FF
; main script part 2; $B7B2-$B97D is overflow from bank 5
; external indirect data load target (via $0F:$FE32)
; indirect data load target
0x00B7C2|$02:$B7B2:DF B4 EB A0 4D BB 17 F4 F9 C3 E2 57 C0 E7 8F 9D 7C 1E 09 97 D7 FD 36 10 FF 98 98 75 EF 8A 45 5E 18 E7 47 62 F5 9C E8 E9 27 C0 42 0F E2 1F F7 61 30 87 93 E2 E3 CC C7 BD 03 9E 3E 76 35 D7 26 4F E9 CA FB 9E 29 FC DF B6 1D F7 8A 61 04 A1 F0 6F 5C 97 A9 B7 60 EB D4 33 58 ED 6E FC 1C EF E9 F4 8E 92 7D 6A 5E 63 E6 08 7B 13 0E BD E9 D1 98 F3 E1 89 B0 EB C0 33 B1 7D CF E3 3D 47 CC 90 F8 95 F0 39 E3 D8 F8 F8 F7 B8 34 EF B5 BB F9 8D 5A 5D 8B F0 73 FD 75 E2 3C DD A7 5D 02 7C 97 E9 FC B1 F0 CE C5 FD 3E 71 FE 3F 6D 84 1F 8D 75 C9 7E 1B 14 FD 75 E9 A0 9D 5D 2F F8 DF D3 E8 DD 73 DB 27 E9 E8 D1 5E 7B 3E E7 1D 79 23 DA C5 E9 27 C4 3D 9A E8 13 2E D7 0F 53 64 DB B1 28 FF 1E 54 E3 A4 9F 4D 04 EA E9 7F 4E 97 F5 FA C3 53 2C 0E BC 3A 61 03 F4 93 E2 3B 5E 81 2F 76 6F 87 A9 B2 6D D8 94 7D 75 E4 92 9F F7 1F FB FA FF 9A F7 7E D3 AB 5D FE C8 EB CB E6 D7 4D FB 17 F1 0F D4 5E A3 E6 48 EA 7A 2A F3 09 BF 62 FE 21 FA 8B FF 7F 1F ED F1 71 EF 6F 58 4D 97 AC 25 FD 72 4A 3E EE BF 66 3C 36 79 4F 8E A4 57 FB B7 E9 27 C9 25 2F 8A 5F A5 E9 B2 7C 35 84 D8 75 E2 3B 58 BE E7 B5 8B C9 BF 88 7E DB 08 3F F1 F2 FF DC 7E 91 3D 92 3A F2 47 F1 B0 F6 27 56 43 F5 D3 9F 38 7C 4A FD EA C9 BF D7 5E 01 FD 3B 70 F4 F3 5D 7A 65 76 F4 09 EC 5F 1D 17 A7 4F 62 FE 9F 38 7D F2 66 3D 4D 92 5E 6B 69 58 BC 75 2B B1 BD 7F 53 3E B5 B0 87 FD 8D 75 C9 FF 05 5E A1 30 83 E4 7E 9C E8 2F FB 87 F1 1E A5 CF 04 7F 94 EE C0 0E EC 00 00
; main script strings #$02E0 - #$02EF
; indirect data load target (via $B7AE)
0x00B98E|$02:$B97E:AF 00 CE C5 FD EF 53 DB 82 BC 43 EE 94 FF B8 F1 B0 F5 68 C9 43 E3 A9 15 E8 D4 96 9B 5F C7 C7 BC BB 27 58 4D F0 F8 35 2F D3 13 A4 0F FA 4C 3E 3E C5 FD EF 53 DB F7 60 AF 20 A3 9E 1D AD DE AD 42 E9 7F 5F AB 69 0D BA 5F 7C B7 09 F4 12 FE 9D 38 C2 6D F5 D7 A8 F0 EE CF E1 F6 4A EC 9C 3E 29 42 21 EB 3D B2 7F B7 DA DD FA 52 B4 DB 5C 7F D3 0E FF 8E EF 63 70 C4 DB F5 43 6F 8C DB A7 FF DF C3 59 3A C3 FD BE C3 A2 AF 07 EC 3F AE 91 F6 FD B0 EF E2 1F A8 8A BC 96 4C C7 EB 28 D1 9B 82 F8 B9 97 E4 B6 F4 1A E9 E0 9E A7 B7 05 7A 86 26 4F E2 3C DC 27 46 67 FE FE BE C7 EB D3 67 D9 37 EB D2 6C 75 3D B8 2B C9 1F C6 C3 FA FB 7D F2 7E 9F 16 AD 98 2B F7 F4 34 F6 EC 5F 16 AD 98 6A 6C F4 F4 09 97 FB 27 FB 7F FB F8 6B 27 58 FA EB F6 63 ED F1 7F 37 A7 A0 4C BE 74 DB FD 93 F8 8E C5 FA 7D CF 63 26 C9 B7 89 8F 7B 92 66 90 7D E1 B1 4F 63 DD CF 4F E9 D3 EB 78 9D 7E 6C 97 C7 50 69 93 FE E1 F2 FC FC DF BE DF 1F D7 5E 21 F7 4C BD 04 BE 47 DF EB 14 A7 0F EF 35 0B 1F 0C EA 7B 70 77 75 F0 1E 84 C1 BD 02 6C 9F 41 FB 3D A0 87 AA C7 8B FB CD 42 C7 C3 3B 5B BD 3D 03 61 F5 D7 86 B2 75 8F 17 1E F7 40 D3 60 F6 2F 8E BB 27 58 4D BF F7 D9 3B D5 91 7F AE BC 47 62 FE 8F 3D 3B 6F 7E C7 D4 DE B0 66 25 0F FE 5F 7C 5B 2B 5C 13 7F 1F 88 7E A2 FE BE C7 CA 3C 4C 7E 03 EE EB C3 1D F2 3E FA 9E DC 1F D2 61 F1 F6 2F EF 7E BA F0 10 87 FB 87 FB 6F C3 2C 9D 61 32 BF EB 8D 75 C9 F1 6C 9F E0 AF 8B 64 9E C5 FF 93 F8 87 EA 3F FB D7 6D 49 17 3C BC 4C 7B DC 1D B5 E9 40 F6 47 D7 5E 0D 2A 4E B0 FF 6F C7 E2 1F B6 C2 0F 5B 7A 04 F9 2F D2 3A 06 99 3D 24 FA D6 C2 1F F2 0E FF 64 55 E9 A0 9D 5D 2F 59 DF 86 58 F9 5B 07 FD 26 1F 1B FA 7D 1B AE EA 7B 7E EC 00 00 00
; main script strings #$02F0 - #$02FF
; indirect data load target (via $B7B0)
0x00BBA7|$02:$BB97:AF 1D 23 27 C6 C7 FE F5 37 A0 4B CD 64 DF 17 EC 5F 74 A7 AE 79 F3 8F FD EB 39 D0 FD B7 9C D5 91 D8 BF A3 CF 4E DB DF B1 EE E7 B6 1D E8 DA 61 0B BF DC 42 7A FC 32 FE 26 3D EB A7 4F B9 F3 86 78 9E 10 EB D4 78 7A B6 1F 7C D9 30 2B E2 DB DF D6 7F F2 FE 9E DA 6C BA 49 FD 8D C7 8B 9E BF F5 C7 E0 3A F8 1E 5C 92 FD A6 10 EC 5F DE FD 75 E2 D3 87 F4 E5 F4 93 77 F4 E9 7F 4E 5F 49 37 F1 F6 9F 37 A7 4B D5 66 A6 48 B8 EB C4 63 C5 46 A4 B4 D8 F9 BF EB 8B 27 48 7D CF 14 BE C7 D2 2E FD 43 F3 1D 79 0E 2B C4 E0 A5 23 9B AE F4 60 95 61 E7 B2 13 6B FF B8 7C BF 3F 37 AF D5 EE FD 43 F3 1D 79 0B 27 50 7F ED E2 7C 4F 37 D0 D4 DD FA 7E 0F D7 26 5F AF 5F 6F BD EC 6D DE C4 D9 B8 D2 D3 F5 D7 8D 3E DF D3 A5 E7 52 BD FF 27 B1 7B 63 D7 9E F8 4D 87 5E 23 D4 E9 D2 99 3F 7A 6E 3D 6F A5 29 FD 7E 3F AE BC 43 F6 D8 41 F8 B6 90 9F FD FC 3A 61 14 E3 C4 F8 BE 94 BF 07 EB 93 2F F8 DF 43 53 71 D7 C0 7C 8E F5 66 D8 62 6C FE 9F 37 6C 93 7B BF ED E9 1F C3 1C 75 E1 3A 04 C9 FF 6F FD F7 59 26 3D 90 FF E5 E8 4A 51 77 FB 9C 44 7A F4 D9 BA 83 F9 23 58 F0 85 FC 4E 1C F2 3D A9 DD 83 BB AF 46 9C 66 D2 7E D8 99 3D B2 7C 92 94 0E BD E6 8B FF BE 0D 5B 30 FB B1 B2 4B F3 D7 9E 5E 4F 62 FE F6 9D 28 3B BA F0 C7 7C 8F BE C5 FD E8 EB C6 FE 7E 6F 5F AB DD F9 96 1B 07 E9 A8 F4 7A 74 A6 4F B2 64 84 D9 28 FD 71 EF 74 DF 35 EF E2 71 83 E2 1E C4 EA CF D3 E2 7B 63 50 7F 40 76 99 2F 37 F1 EB 3E 29 F4 EB C0 33 B1 7E 19 64 A5 FF B5 FC 4F 8B EB AF 30 9B F6 2F E2 3C D6 26 1D 7F 93 F5 D7 88 7E A2 FE 8F 3D 3B 6F 7E C5 FA 93 F8 49 19 9A 96 13 6E C7 C7 81 E4 B7 E9 67 7F 10 FE BE C7 8B 6E 94 3F E2 FD 58 98 75 EF DB 13 2F FD F8 6C 52 F3 6A 29 FA EB C6 9F 7E 2E 3D EC 36 29 FA EB D1 A4 C9 6F 40 97 C8 FB 7C 4A F3 33 56 8F 8F 12 BE FD 7A 61 0F 13 AF B1 F0 93 61 A7 90 F8 5B 1E 2F B9 E2 9D FD AF F8 EE FD 3F A7 4E B3 86 AB 30 7F 40 76 99 21 AF 01 0D E8 B7 F3 78 87 EF 58 33 1F F7 DB C9 E9 1F C6 9F 6F 59 C6

; data -> code
; read the next text token and interpolate any variable control codes; SEC to trigger read of [end-FA]-terminated string from $60F1, CLC to use A
; from $0F:$FBF7 via $8014
; indirect control flow target (via $8014)
; call to code in a different bank ($0F:$FE97)
0x00BE10|$02:$BE00:20 97 FE	JSR $FE97  	; read byte following JSR, parse it for bank and pointer index, execute ($8000,X) in selected bank, swap back in original bank

; code -> data
; indirect data load target
0x00BE13|$02:$BE03:42	; $02:$8004; -> $02:$B393: read the next string byte; preserves X and Y

; data -> code
0x00BE14|$02:$BE04:C9 F3   	CMP #$F3   	; "[monster(s)]"
0x00BE16|$02:$BE06:F0 24   	BEQ $BE2C  	; given monster count in $8F singular monster name in $6119, and monster name length in X, print appropriate singluar/plural monster name to $60F1
0x00BE18|$02:$BE08:C9 F4   	CMP #$F4   	; "[cardinal #]"
0x00BE1A|$02:$BE0A:F0 25   	BEQ $BE31  	; given monster count in $8F, print corresponding cardinal number to $60F1
0x00BE1C|$02:$BE0C:C9 F5   	CMP #$F5   	; "[number]"
0x00BE1E|$02:$BE0E:F0 29   	BEQ $BE39  	; print the number stored at $8F-$90 to $60F1 in decimal
0x00BE20|$02:$BE10:C9 F8   	CMP #$F8   	; "[name]"
0x00BE22|$02:$BE12:F0 15   	BEQ $BE29  	; copy $6119,X to $60F1,X until we read a #$FA
0x00BE24|$02:$BE14:C9 F7   	CMP #$F7   	; "[item]"
0x00BE26|$02:$BE16:F0 4B   	BEQ $BE63  	; print name of item ID in $95 to $60F1
0x00BE28|$02:$BE18:C9 F9   	CMP #$F9   	; "[item-F9]" used for getting random direction by crazy fortuneteller and for printing some names of crests
0x00BE2A|$02:$BE1A:F0 0A   	BEQ $BE26  	; copy [end-FA]-terminated string from $5A to $60F1
0x00BE2C|$02:$BE1C:C9 F2   	CMP #$F2   	; "[(s)]"
0x00BE2E|$02:$BE1E:F0 14   	BEQ $BE34  	; if $8F-$90 == #$0001, print "s" + [end-FA] to $60F1 and SEC, else LDA [end-FA] and CLC
0x00BE30|$02:$BE20:C9 F6   	CMP #$F6   	; "[spell]"
0x00BE32|$02:$BE22:F0 76   	BEQ $BE9A  	; given spell ID in $95, print spell name to $60F1
0x00BE34|$02:$BE24:18      	CLC        	; SEC to trigger read of [end-FA]-terminated string from $60F1, CLC to use A
0x00BE35|$02:$BE25:60      	RTS        

; copy [end-FA]-terminated string from $5A to $60F1
; control flow target (from $BE1A)
0x00BE36|$02:$BE26:4C AE BE	JMP $BEAE  	; copy [end-FA]-terminated string from $5A to $60F1

; copy $6119,X to $60F1,X until we read a #$FA
; control flow target (from $BE12)
0x00BE39|$02:$BE29:4C BC BE	JMP $BEBC  	; copy $6119,X to $60F1,X until we read a #$FA

; given monster count in $8F singular monster name in $6119, and monster name length in X, print appropriate singluar/plural monster name to $60F1
; control flow target (from $BE06)
; call to code in a different bank ($0F:$FE97)
0x00BE3C|$02:$BE2C:20 97 FE	JSR $FE97  	; read byte following JSR, parse it for bank and pointer index, execute ($8000,X) in selected bank, swap back in original bank

; code -> data
; indirect data load target
0x00BE3F|$02:$BE2F:E2	; $07:$8004; -> $07:$87F1: given monster count in $8F singular monster name in $6119, and monster name length in X, print appropriate singluar/plural monster name to $60F1

; data -> code
0x00BE40|$02:$BE30:60      	RTS        

; given monster count in $8F, print corresponding cardinal number to $60F1
; control flow target (from $BE0A)
0x00BE41|$02:$BE31:4C F0 BE	JMP $BEF0  	; given monster count in $8F, print corresponding cardinal number to $60F1

; if $8F-$90 == #$0001, print "s" + [end-FA] to $60F1 and SEC, else LDA [end-FA] and CLC
; control flow target (from $BE1E)
; call to code in a different bank ($0F:$FE97)
0x00BE44|$02:$BE34:20 97 FE	JSR $FE97  	; read byte following JSR, parse it for bank and pointer index, execute ($8000,X) in selected bank, swap back in original bank

; code -> data
; indirect data load target
0x00BE47|$02:$BE37:E3	; $07:$8006; -> $07:$87D8: if $8F-$90 == #$0001, print "s" + [end-FA] to $60F1 and SEC, else LDA [end-FA] and CLC

; data -> code
0x00BE48|$02:$BE38:60      	RTS        

; print the number stored at $8F-$90 to $60F1 in decimal
; control flow target (from $BE0E)
0x00BE49|$02:$BE39:A9 05   	LDA #$05   	; 16-bit binary input => at most 5 decimal digit output
0x00BE4B|$02:$BE3B:8D A0 60	STA $60A0  	; maximum string length
0x00BE4E|$02:$BE3E:A5 8F   	LDA $8F    	; copy $8F-$90 to dividend address
0x00BE50|$02:$BE40:85 10   	STA $10    
0x00BE52|$02:$BE42:A5 90   	LDA $90    
0x00BE54|$02:$BE44:85 11   	STA $11    
0x00BE56|$02:$BE46:A9 00   	LDA #$00   	; and set dividend byte 2 to #$00
0x00BE58|$02:$BE48:85 12   	STA $12    
; call to code in a different bank ($0F:$F17C)
0x00BE5A|$02:$BE4A:20 7C F1	JSR $F17C  	; given a 24-bit number N in $10-$12, print its base 10 digits in reverse to $0100 up to maximum string length $60A0
; call to code in a different bank ($0F:$F18D)
0x00BE5D|$02:$BE4D:20 8D F1	JSR $F18D  	; scan through $0100 + maximum string length $60A0 in reverse, replacing zeroes with spaces until the first non-zero or $0100 is reached; leaves X at most significant digit
0x00BE60|$02:$BE50:A0 00   	LDY #$00   	; reverse little-endian $0100 into big-endian $60F1
; control flow target (from $BE5A)
0x00BE62|$02:$BE52:BD 00 01	LDA $0100,X	; string copy buffer start (often referenced as $00FF,X)
0x00BE65|$02:$BE55:99 F1 60	STA $60F1,Y	; start of text variable buffer
0x00BE68|$02:$BE58:C8      	INY        
0x00BE69|$02:$BE59:CA      	DEX        
0x00BE6A|$02:$BE5A:10 F6   	BPL $BE52  	; keep looping until we reach $0100
; write [end-FA] then RTS
; control flow target (from $BE84, $BEAB)
0x00BE6C|$02:$BE5C:A9 FA   	LDA #$FA   	; [end-FA]
0x00BE6E|$02:$BE5E:99 F1 60	STA $60F1,Y	; start of text variable buffer
0x00BE71|$02:$BE61:38      	SEC        	; SEC to trigger read of [end-FA]-terminated string from $60F1, CLC to use A
0x00BE72|$02:$BE62:60      	RTS        

; print name of item ID in $95 to $60F1
; control flow target (from $BE16)
0x00BE73|$02:$BE63:A9 00   	LDA #$00   	; item list is stored in two segments; start with the first one
0x00BE75|$02:$BE65:8D AB 60	STA $60AB  	; which list segment we're dealing with
0x00BE78|$02:$BE68:20 87 BE	JSR $BE87  	; given item ID in $95, print item name segment to $0100
0x00BE7B|$02:$BE6B:20 CB BE	JSR $BECB  	; given length of string in $0100 in Y, copy that many bytes from $0100 to $60F1; transfer data from $FF,X to $60F1,Y
0x00BE7E|$02:$BE6E:A9 5F   	LDA #$5F   	; Tile ID #$5F: [space]
0x00BE80|$02:$BE70:99 F1 60	STA $60F1,Y	; start of text variable buffer
0x00BE83|$02:$BE73:C8      	INY        
0x00BE84|$02:$BE74:98      	TYA        	; save the current write index for later
0x00BE85|$02:$BE75:48      	PHA        
0x00BE86|$02:$BE76:EE AB 60	INC $60AB  	; which list segment we're dealing with
0x00BE89|$02:$BE79:20 87 BE	JSR $BE87  	; given item ID in $95, print item name segment to $0100
0x00BE8C|$02:$BE7C:8C 84 60	STY $6084  	; length of string in $0100
0x00BE8F|$02:$BE7F:68      	PLA        	; restore write index to Y
0x00BE90|$02:$BE80:A8      	TAY        
0x00BE91|$02:$BE81:20 D0 BE	JSR $BED0  	; given length of string in $0100 in $6084, copy that many bytes from $0100 to $60F1; transfer data from $FF,X to $60F1,Y
0x00BE94|$02:$BE84:4C 5C BE	JMP $BE5C  	; write [end-FA] then RTS

; given item ID in $95, print item name segment to $0100
; control flow target (from $BE68, $BE79)
0x00BE97|$02:$BE87:A9 0D   	LDA #$0D   	; max length of item name segment
0x00BE99|$02:$BE89:8D A0 60	STA $60A0  	; maximum string length
0x00BE9C|$02:$BE8C:A9 20   	LDA #$20   
0x00BE9E|$02:$BE8E:8D AA 60	STA $60AA  	; menu format (#$80 = has cursor, #$40 = is linked, #$20 = is single spaced, #$02 = only display equipped items, #$01 = display [left border, equipped] if equipped)
0x00BEA1|$02:$BE91:A5 95   	LDA $95    	; ID for [item] and [spell] control codes; item index
0x00BEA3|$02:$BE93:29 3F   	AND #$3F   	; strip off equipped bit
; call to code in a different bank ($0F:$F2A7)
0x00BEA5|$02:$BE95:20 A7 F2	JSR $F2A7  	; print name of item ID in A to $0100 in reverse; depending on settings, possibly update menu's [left border] to [left border, equipped]
0x00BEA8|$02:$BE98:18      	CLC        
0x00BEA9|$02:$BE99:60      	RTS        

; given spell ID in $95, print spell name to $60F1
; control flow target (from $BE22)
0x00BEAA|$02:$BE9A:A9 09   	LDA #$09   	; max length of spell name
0x00BEAC|$02:$BE9C:8D A0 60	STA $60A0  	; maximum string length
0x00BEAF|$02:$BE9F:A5 95   	LDA $95    	; ID for [item] and [spell] control codes; spell ID
; call to code in a different bank ($0F:$FE97)
0x00BEB1|$02:$BEA1:20 97 FE	JSR $FE97  	; read byte following JSR, parse it for bank and pointer index, execute ($8000,X) in selected bank, swap back in original bank

; code -> data
; given spell ID in A, set A to spell name index
; indirect data load target
0x00BEB4|$02:$BEA4:D0	; $06:$8020; -> $06:$AE4A: given spell ID in A, set A to spell name index

; data -> code
; call to code in a different bank ($0F:$F39F)
0x00BEB5|$02:$BEA5:20 9F F3	JSR $F39F  	; given spell name index in A, print spell name to $0100 in reverse, set Y to length of string copied, then load bank specified by $60D7 (set by last call to $F3E2)
0x00BEB8|$02:$BEA8:20 CB BE	JSR $BECB  	; given length of string in $0100 in Y, copy that many bytes from $0100 to $60F1
0x00BEBB|$02:$BEAB:4C 5C BE	JMP $BE5C  	; write [end-FA] then RTS

; copy [end-FA]-terminated string from $5A to $60F1
; control flow target (from $BE26)
0x00BEBE|$02:$BEAE:A2 00   	LDX #$00   
; control flow target (from $BEB8)
0x00BEC0|$02:$BEB0:B5 5A   	LDA $5A,X  	; Crest/direction name write buffer start
0x00BEC2|$02:$BEB2:9D F1 60	STA $60F1,X	; start of text variable buffer
0x00BEC5|$02:$BEB5:E8      	INX        
0x00BEC6|$02:$BEB6:C9 FA   	CMP #$FA   	; [end-FA]
0x00BEC8|$02:$BEB8:D0 F6   	BNE $BEB0  
0x00BECA|$02:$BEBA:38      	SEC        	; SEC to trigger read of [end-FA]-terminated string from $60F1, CLC to use A
0x00BECB|$02:$BEBB:60      	RTS        

; copy $6119,X to $60F1,X until we read a #$FA
; OUT: X = string length + 1
; from $07:$87F4 via $8016
; control flow target (from $BE29)
; indirect control flow target (via $8016)
0x00BECC|$02:$BEBC:A2 00   	LDX #$00   
; control flow target (from $BEC7)
0x00BECE|$02:$BEBE:BD 19 61	LDA $6119,X	; start of buffer for [monster(s)], [name], maybe more
0x00BED1|$02:$BEC1:9D F1 60	STA $60F1,X	; start of text variable buffer
0x00BED4|$02:$BEC4:E8      	INX        
0x00BED5|$02:$BEC5:C9 FA   	CMP #$FA   	; [end-FA]
0x00BED7|$02:$BEC7:D0 F5   	BNE $BEBE  
0x00BED9|$02:$BEC9:38      	SEC        	; SEC to trigger read of [end-FA]-terminated string from $60F1, CLC to use A
0x00BEDA|$02:$BECA:60      	RTS        

; given length of string in $0100 in Y, copy that many bytes from $0100 to $60F1
; control flow target (from $BE6B, $BEA8)
0x00BEDB|$02:$BECB:8C 84 60	STY $6084  	; length of string in $0100
0x00BEDE|$02:$BECE:A0 00   	LDY #$00   
; given length of string in $0100 in $6084, copy that many bytes from $0100 to $60F1
; control flow target (from $BE81)
0x00BEE0|$02:$BED0:AE 84 60	LDX $6084  	; length of string in $0100
0x00BEE3|$02:$BED3:F0 19   	BEQ $BEEE  	; if no string in $0100, DEY and RTS
0x00BEE5|$02:$BED5:A9 00   	LDA #$00   	; number of bytes copied
0x00BEE7|$02:$BED7:85 10   	STA $10    	; number of bytes copied
0x00BEE9|$02:$BED9:AE A0 60	LDX $60A0  	; maximum string length
; control flow target (from $BEEB)
0x00BEEC|$02:$BEDC:BD FF 00	LDA $00FF,X	; built-in offset from string copy buffer start at $0100
0x00BEEF|$02:$BEDF:99 F1 60	STA $60F1,Y	; start of text variable buffer
0x00BEF2|$02:$BEE2:CA      	DEX        
0x00BEF3|$02:$BEE3:C8      	INY        
0x00BEF4|$02:$BEE4:E6 10   	INC $10    	; number of bytes copied
0x00BEF6|$02:$BEE6:A5 10   	LDA $10    	; number of bytes copied
0x00BEF8|$02:$BEE8:CD 84 60	CMP $6084  	; length of string in $0100
0x00BEFB|$02:$BEEB:D0 EF   	BNE $BEDC  	; if more bytes to copy, copy them
0x00BEFD|$02:$BEED:60      	RTS        

; control flow target (from $BED3)
0x00BEFE|$02:$BEEE:88      	DEY        	; undo the space between item segments
0x00BEFF|$02:$BEEF:60      	RTS        

; given monster count in $8F, print corresponding cardinal number to $60F1
; control flow target (from $BE31)
0x00BF00|$02:$BEF0:A4 8F   	LDY $8F    	; number of monsters in group
0x00BF02|$02:$BEF2:88      	DEY        	; count from 0 instead of 1
0x00BF03|$02:$BEF3:84 10   	STY $10    
0x00BF05|$02:$BEF5:A2 00   	LDX #$00   	; read index
0x00BF07|$02:$BEF7:A0 00   	LDY #$00   	; write index
; control flow target (from $BF03, $BF09)
0x00BF09|$02:$BEF9:BD 0D BF	LDA $BF0D,X	; Monster Counts text
0x00BF0C|$02:$BEFC:99 F1 60	STA $60F1,Y	; start of text variable buffer
0x00BF0F|$02:$BEFF:C8      	INY        
0x00BF10|$02:$BF00:E8      	INX        
0x00BF11|$02:$BF01:C9 FA   	CMP #$FA   	; [end-FA]
0x00BF13|$02:$BF03:D0 F4   	BNE $BEF9  	; if not end token, keep copying
0x00BF15|$02:$BF05:A0 00   	LDY #$00   	; otherwise reset write index
0x00BF17|$02:$BF07:C6 10   	DEC $10    	; update required number of end tokens
0x00BF19|$02:$BF09:10 EE   	BPL $BEF9  	; and if we still need more end tokens, loop
0x00BF1B|$02:$BF0B:38      	SEC        	; SEC to trigger read of [end-FA]-terminated string from $60F1, CLC to use A
0x00BF1C|$02:$BF0C:60      	RTS        


; code -> data
; Monster Counts text
; indexed data load target (from $BEF9)
0x00BF1D|$02:$BF0D:32 17 0E FA	; "One" + [end-FA]
0x00BF21|$02:$BF11:37 20 18 FA	; "Two" + [end-FA]
0x00BF25|$02:$BF15:37 11 1B 0E 0E FA	; "Three" + [end-FA]
0x00BF2B|$02:$BF1B:29 18 1E 1B FA	; "Four" + [end-FA]
0x00BF30|$02:$BF20:29 12 1F 0E FA	; "Five" + [end-FA]
0x00BF35|$02:$BF25:36 12 21 FA	; "Six" + [end-FA]
0x00BF39|$02:$BF29:36 0E 1F 0E 17 FA	; "Seven" + [end-FA]
0x00BF3F|$02:$BF2F:28 12 10 11 1D FA	; "Eight" + [end-FA]

; data -> free
0x00BF45|$02:$BF35:FF
; ... skipping $A1 FF bytes
0x00BFE7|$02:$BFD7:FF

; free -> unknown
0x00BFE8|$02:$BFD8:78      	; SEI        
0x00BFE9|$02:$BFD9:EE DF BF	; INC $BFDF  
0x00BFEA|$02:$BFDA:DF      	; INVALID OPCODE
0x00BFEB|$02:$BFDB:BF      	; INVALID OPCODE
0x00BFEC|$02:$BFDC:4C 86 FF	; JMP $FF86  
0x00BFED|$02:$BFDD:86 FF   	; STX $FF    
0x00BFEE|$02:$BFDE:FF      	; INVALID OPCODE
0x00BFEF|$02:$BFDF:80      	; INVALID OPCODE
0x00BFF0|$02:$BFE0:44      	; INVALID OPCODE
0x00BFF1|$02:$BFE1:52      	; INVALID OPCODE
0x00BFF2|$02:$BFE2:41 47   	; EOR ($47,X)
0x00BFF3|$02:$BFE3:47      	; INVALID OPCODE
0x00BFF4|$02:$BFE4:4F      	; INVALID OPCODE
0x00BFF5|$02:$BFE5:4E 20 57	; LSR $5720  
0x00BFF6|$02:$BFE6:20 57 41	; JSR $4157  
0x00BFF7|$02:$BFE7:57      	; INVALID OPCODE
0x00BFF8|$02:$BFE8:41 52   	; EOR ($52,X)
0x00BFF9|$02:$BFE9:52      	; INVALID OPCODE
0x00BFFA|$02:$BFEA:52      	; INVALID OPCODE
0x00BFFB|$02:$BFEB:49 4F   	; EOR #$4F   
0x00BFFC|$02:$BFEC:4F      	; INVALID OPCODE
0x00BFFD|$02:$BFED:52      	; INVALID OPCODE
0x00BFFE|$02:$BFEE:53      	; INVALID OPCODE
0x00BFFF|$02:$BFEF:32      	; INVALID OPCODE
0x00C000|$02:$BFF0:FF      	; INVALID OPCODE
0x00C001|$02:$BFF1:FF      	; INVALID OPCODE
0x00C002|$02:$BFF2:00      	; BRK        
0x00C003|$02:$BFF3:00      	; BRK        
0x00C004|$02:$BFF4:48      	; PHA        
0x00C005|$02:$BFF5:04      	; INVALID OPCODE
0x00C006|$02:$BFF6:01 0F   	; ORA ($0F,X)
0x00C007|$02:$BFF7:0F      	; INVALID OPCODE
0x00C008|$02:$BFF8:07      	; INVALID OPCODE
0x00C009|$02:$BFF9:9D D8 BF	; STA $BFD8,X
0x00C00A|$02:$BFFA:D8      	; CLD        
0x00C00B|$02:$BFFB:BF      	; INVALID OPCODE
0x00C00C|$02:$BFFC:D8      	; CLD        
0x00C00D|$02:$BFFD:BF      	; INVALID OPCODE
0x00C00E|$02:$BFFE:D8      	; CLD        

; unknown -> data
0x00C00F|$02:$BFFF:BF